【发布时间】:2014-10-27 20:52:37
【问题描述】:
我想知道 initializer_list<T> 是否要求 T 具有赋值运算符。以下
struct Foo
{
Foo& operator=( const Foo& ) = delete;
};
std::vector<Foo> f = { Foo( ), Foo( ) };
在 clang 3.4.2 上编译,但在 Visual Studo 2013 上以 "error C2280: 'Foo &Foo::operator =(const Foo &)' : attempting to reference a deleted function" 失败。我假设 clang 在这里是正确的,但想检查 T 是否可以分配。
【问题讨论】:
标签: c++ c++11 initializer-list