C++11 被介绍给我的是:
C++11 引入了几个新的方便的类型推断功能,这意味着您可以减少编写编译器已经知道的东西的时间
问题:为什么编译器对以下两个错误有不同的行为?在这种简单的情况下,这不是很挑衅吗?
class Foo{};
class Bar{};
int main()
{
Foo foo;
auto foo = Foo(); // <- error C2086: 'Foo foo' : redefinition
////////////
Bar* boo = new Bar();
auto boo = new Bar(); // <- error C2040: 'boo' : 'auto' differs in levels of indirection from 'Bar *'
return 0;
}
PS:我忘了告诉我的编译器:这是VS2012