小编Tha*_*yen的帖子

无法使用 constexpr int 变量定义 constexpr 指针

int main() {\n  constexpr int i = 5;\n  constexpr const int *p = &i;\n  return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

编译上面的代码后:

\n
g++ main.cpp\n
Run Code Online (Sandbox Code Playgroud)\n

这是错误:

\n
\n

main.cpp: 在函数 \xe2\x80\x98int main()\xe2\x80\x99: \xe2\x95\x91
\n~ \xe2\x95\x91main.cpp:3:28: 错误: \xe2\x80 \x98& i\xe2\x80\x99 不是常量表达式 \xe2\x95\x91
\n~ \xe2\x95\x91 3 | constexpr const int *p = &i; \xe2\x95\x91
\n~ \xe2\x95\x91 | ^~ \xe2\x95\x91
\n~ \xe2\x95\x91 \xe2\x95\x91

\n
\n

这是我的 g++ 版本:

\n
    \xe2\x95\x91Target: x86_64-pc-linux-gnu                                             \xe2\x95\x91  \n    \xe2\x95\x91Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,a\xe2\x95\x91\n~   \xe2\x95\x91da,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libd\xe2\x95\x91\n~   \xe2\x95\x91ir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr\xe2\x95\x91\n~   \xe2\x95\x91/share/info …
Run Code Online (Sandbox Code Playgroud)

c++ pointers constexpr

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

标签 统计

c++ ×1

constexpr ×1

pointers ×1