c++ - 函数参数为 __builtin_constant_p?
问题描述
是否可以有一个函数参数是 __builtin_constant_p?
这个宏工作正常:
#define FOO(a) {\
static_assert(__builtin_constant_p(a));\
}
void bar() {
FOO("abc");
}
我想FOO
变成一个函数。但是,这不起作用:
void foo(const char* a) { // how to change argument to make this work?
static_assert(__builtin_constant_p(a)); // Fails with: Static_assert failed due to requirement '__builtin_constant_p(a)
}
void bar() {
foo("abc");
}
我怎样才能改变它的论点foo
使它起作用?可能使用模板 / std::forward 或类似的东西?
解决方案
推荐阅读
- php - While 循环中的 If 语句 - Php/Wordpress
- ruby - 如何组合和打印嵌套对象结构的值?
- ruby-on-rails - 当点击链接页面出现但js没有加载时,刷新页面后JS正在加载(Ruby on Rails应用程序)
- node.js - 从代理(脚本地址)事件后面获取 socket.io-client 以通过代理(脚本地址)发出
- c# - 返回一个由从 1 到 n 的数字的字符串表示形式组成的数组,在 C# 中
- python - 如何使用 Python 加密大文件?
- java - 根据条件同步调用异步方法
- node.js - 我需要在nodejs的系统级别修改网络摄像头流
- python - Python 通用异常不良实践概念
- python - Flask-WTForms:填充 FileField 字段