C++11 为什么gcc不';t识别初始化,例如;无符号整数();对于C++;11?

C++11 为什么gcc不';t识别初始化,例如;无符号整数();对于C++;11?,c++11,gcc,visual-c++,initialization,unsigned,C++11,Gcc,Visual C++,Initialization,Unsigned,“自动i”行导致gcc重新打印eror: int main() { auto k = int();//ok auto i = unsigned int();//gcc error return 0; } 而VC在我的代码上没有问题。这是为什么,这是gcc的一个缺陷,还是应该使用一些额外的帕伦斯 谢谢。您可以使用无符号而不是无符号整数。但是为什么VS和gcc会有不同是一个很好的问题。Clang也不喜欢它。你可以使用myint=unsigned int使它与一起工作然后自动

“自动i”行导致gcc重新打印eror:

int main()
{
    auto k = int();//ok
    auto i = unsigned int();//gcc error
    return 0;
}
而VC在我的代码上没有问题。这是为什么,这是gcc的一个缺陷,还是应该使用一些额外的帕伦斯


谢谢。

您可以使用
无符号
而不是
无符号整数
。但是为什么VS和gcc会有不同是一个很好的问题。Clang也不喜欢它。你可以使用myint=unsigned int使它与
一起工作然后
自动i=myint()。但我仍然很想知道为什么gcc和clang会为此报告错误。这是否适用于
unsigned short()
?它只是受影响的
无符号
int
还是像
auto d=long double()这样的多字数字?
error: expected primary-expression before 'unsigned'