6

std::initializer_list我制作了一个与使用支持的 VS2013具有相同实现的类Uniform Initialization.

template <class _Elem>
class My_Initializer_List { ... } // Hope to replace std::initializer_list!

我注意到的第一件事是编译器一直在寻找std::initializer_list它的替代品,即My_Initiliazer_List.

void Foo()
{
    // The compiler tries to invoke 
    // its constructor with std::initializer<int>{ 10, 20 }.
    auto MyVar = My_Initializer_List<int>{ 10, 20 }; // Compile Error!
}

如果这个特性依赖于 C++ 标准库,那么我相信我应该可以用我自己的类来替换它,至少出于学术目的。

提前致谢。

4

1 回答 1

9

对不起,不行。std::initializer_list编译器具有“烘焙”的特殊知识。标准库的其他一些部分也是如此(例如,dynamic_cast引用的 a 会抛出 a std::bad_cast,并且您实际上也无法更改它)。

于 2013-11-14T04:00:36.763 回答