Dea*_*Seo 3 c++ initializer-list c++11
我创建了一个类,它具有std::initializer_list使用VS2013支持的相同实现Uniform Initialization.
template <class _Elem>
class My_Initializer_List { ... } // Hope to replace std::initializer_list!
Run Code Online (Sandbox Code Playgroud)
我注意到的第一件事是编译器一直在寻找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!
}
Run Code Online (Sandbox Code Playgroud)
如果此功能依赖于C++标准库,那么我相信我应该能够将其替换为我自己的类,至少在学术上是这样.
提前致谢.
对不起,不行.编译器具有std::initializer_list"烘焙"的特殊知识.标准库的其他几个部分也是如此(例如,dynamic_cast一个参考文件抛出一个std::bad_cast,并且你无法做任何改变它的事情).