伙计们,last post我正在尝试在模板实例化时输出数据
template <unsigned long N>
struct binary
{
std::cout << N;//<---------------------------------I'M TRYING HERE
static unsigned const value
= binary<N/10>::value << 1 // prepend higher bits
| N%10; // to lowest bit
但是我收到了一个错误:
'错误2错误C2886:'std :: cout':符号不能在使用声明的成员中使用'
感谢您的帮助 附: 任何人都可以解释为什么我不能这样做?
答案 0 :(得分:4)
我正在尝试在模板实例化时输出数据
模板实例化在编译时发生。您无法在编译时输出任何内容。
您所能做的就是在编译时计算值并在运行时计算它(即在函数内部)。
答案 1 :(得分:2)
你在一个不在方法内部的结构中。只有你可以调用函数。
答案 2 :(得分:2)
您可以声明变量,并在那里为它们赋值。但是类似的东西需要在函数内部。