C++11 使std::initializer\u list const改变了什么吗? std::初始值设定项\u list FOO={1,2,3}; 常量std::初始值设定项_列表栏={1,2,3};

C++11 使std::initializer\u list const改变了什么吗? std::初始值设定项\u list FOO={1,2,3}; 常量std::初始值设定项_列表栏={1,2,3};,c++11,C++11,这两个变量之间有什么区别?根据我对std::initializer\u list的理解,访问权限是const——无论如何只能访问。使整件事const实际上改变了什么吗?因为,我想不出任何实际情况会有什么不同 如果您直接使用它的类型(例如使用std::is_same或std::is_const),那么常量将很重要。结果是std::initializer\u list有一个生成的操作符=。所以第二个声明阻止了 std::initializer_list<int> FOO = {1, 2,

这两个变量之间有什么区别?根据我对
std::initializer\u list
的理解,访问权限是
const
——无论如何只能访问。使整件事
const
实际上改变了什么吗?

因为,我想不出任何实际情况会有什么不同


如果您直接使用它的类型(例如使用
std::is_same
std::is_const
),那么
常量将很重要。

结果是
std::initializer\u list
有一个生成的
操作符=
。所以第二个声明阻止了

std::initializer_list<int> FOO = {1, 2, 3};
const std::initializer_list<int> BAR = {1, 2, 3};
BAR = {};