c++ - C++模板参数中的常量表达式

标签 c++ templates gcc c++11

我有一个模板,它接受一个 char 参数,例如:

A<'T'>

我将我的 T 存储在一个变量中,例如:

const char ch = str[0];//str 是我程序中的一个字符串

constexpr char ch = str[0];//这对我也不起作用

我正在努力实现这一目标:

A<ch>();

我正在使用 gcc 4.7 并尝试使用 constexpr,但我无法完成这项工作

有什么方法可以让它发挥作用吗? 感谢任何帮助

最佳答案

这只有在一切都是常量表达式时才有效:

constexpr char str[] = "Hello World";
constexpr char ch = str[0];
A<ch> x;

关于c++ - C++模板参数中的常量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337563/

相关文章:

c++ - 我从源代码安装了 GCC 5.2,但我不知道如何在 Ubuntu 15.04 上卸载它

c++ - Gcc 隐藏来自包含的静态库的符号的可见性

c++ - C++获取构造函数的类型

c++ - 断言中的 dynamic_cast 导致错误

JavaScript 正则表达式模板 : only match when string inside brackets is equal

javascript - 在 &lt;script id ="template-download"type ="text/x-tmpl"> 中嵌入 javascript

c - 缓冲区溢出改变返回地址 C - 没有 main

c++ - 预览 Microsoft Outlook 对象库生成的电子邮件

C++ 清除 wstring

c++ - C++中的随机数生成......第一个数字不是很随机