我对自动和初始化列表之间的交互有疑问。示例代码:
#include <iostream>
int main()
{
auto a{ 1 };
auto b = { 1 };
auto c = 1;
std::cout << typeid(a).name() << std::endl;
std::cout << typeid(b).name() << std::endl;
std::cout << typeid(c).name() << std::endl;
return 0;
}
提供输出:
int
class std::initializer_list<int>
int
这有点令人困惑。我将此问题发布为followup to this。应该怎么办?我做了一些研究,似乎auto c = 1;
是illegal now,似乎它起作用,因为编译器允许这作为向后兼容性补丁。这是否也适用于auto a{1}
?