Я сделал класс, который имеет ту же реализацию std::initializer_list
с помощью VS2013, который поддерживает Uniform Initialization.
Как создать собственный класс initializer_list в C++ 11?
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++, то я считаю, что я должен быть в состоянии заменить его с моим собственным классом, по крайней мере, для академических целей.
Заранее спасибо.
Вы не можете осуществить это – aaronman
@aaronman Еще раз спасибо. Но не могли бы вы быть более конкретными о том, почему? –
Возможный дубликат [Реализация std :: initializer \ _list] (http://stackoverflow.com/questions/18164353/implementation-of-stdinitializer-list) –