相关疑难解决方法(0)

为什么常量指针不能成为常量表达式?

以下程序编译:

template <const int * P>
class Test{};

extern const int var = 42; //extern needed to force external linkage

int main()
{
    Test<&var> test;
}
Run Code Online (Sandbox Code Playgroud)

然而,这个没有,这对我来说是一个惊喜:

template <const int * P>
class Test{};

extern const int var = 42; //extern needed to force external linkage
extern const int * const ptr = &var; //extern needed to force external linkage
int main()
{
    Test<ptr> test; //FAIL! Expected constant expression.
}
Run Code Online (Sandbox Code Playgroud)

替代示例:

int main()
{
   const int size = 42;
   int …
Run Code Online (Sandbox Code Playgroud)

c++ pointers constant-expression c++11

30
推荐指数
1
解决办法
4104
查看次数

标签 统计

c++ ×1

c++11 ×1

constant-expression ×1

pointers ×1