如果我写这个程序:
#include <iostream> namespace foo { struct bar { int x; }; } int main (void) { struct foo::bar *a = new struct foo::bar; delete a; return 0; }
并编译:
g++ main.cxx -Wall -Wextra
它给我这个警告:
main.cxx: In function ‘int main()’: main.cxx:10:39: warning: declaration ‘struct foo::bar’ does not declare anything [enabled by default]
但是,如果我在new关键字后面取出了struct关键字:
#include <iostream> namespace foo { struct bar { int x; }; } int main (void) { struct foo::bar *a = new foo::bar; delete a; return 0; }
并以相同的方式编译,g不输出警告.为什么g输出警告如果我使用struct关键字?
@H_403_18@