'const auto'的间接级别与'const char *const '不同
'const auto' differs in levels of indirection from 'const char *const '
标题中的代码:
extern const char* const foo;
源代码:
const auto foo = "bar";
Visual studio 2015产生以下错误:
错误C2040"foo":"const auto"的间接寻址级别与不同'const char*const'
我的嵌入式编译器(来自Keil的uVision)对此代码没有问题,Clang(coliru)也没有问题。我的问题是,这是VS编译器中的错误还是我的代码中有问题?
我认为你的auto
不够const
——它被推导为const char *
(这是字符串文字的类型),你需要const char * const
。我不认为这是编译器的错误。
我希望这段代码在使用-pedantic-errors
编译时会在GCC和clang中引发错误。
定义应遵循声明(省略外部):const char* const foo = "bar";