Я сейчас изучаю c ++ 11, я не понял конструктор std :: initializer_list, он выглядит так
constexpr initializer_list() noexcept : _First(nullptr), _Last(nullptr) {}
constexpr initializer_list(const _Elem* _First_arg, const _Elem* _Last_arg) noexcept
: _First(_First_arg), _Last(_Last_arg) {}
Но как это работает с
std::initializer_list<int> v{1,2,3,4,5,6,7,8,9,0};
и i попробовал это
constexpr init(const _Elem* _First_arg, const _Elem* _Last_arg) noexcept
: _First(_First_arg), _Last(_Last_arg) {}
, но это показывает ошибку
init<int> ob{1,2,3,4,5,6,7,8,9,0}; //this shows error
note: candidate: 'constexpr init<_Elem>::init(const _Elem*, const _Elem*) [with _Elem = int]'
constexpr init(const _Elem* _First_arg, const _Elem* _Last_arg) noexcept
^~~~
note: candidate expects 2 arguments, 10 provided
, и я изменил {} на (), например
std::initializer_list<int> v(1,2,3,4,5,6,7,8,9,0);
Это показывает ошибку.
1) Как работает std :: initializer_list?
2) Что стоит за {}?
Спасибо.