fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #include <cstddef>
  5.  
  6. namespace test
  7. {
  8.  
  9. template<class _E>
  10. class initializer_list
  11. {
  12. public:
  13. typedef _E value_type;
  14. typedef const _E& reference;
  15. typedef const _E& const_reference;
  16. typedef size_t size_type;
  17. typedef const _E* iterator;
  18. typedef const _E* const_iterator;
  19.  
  20. private:
  21. iterator _M_array;
  22. size_type _M_len;
  23.  
  24. constexpr initializer_list(const_iterator __a, size_type __l)
  25. : _M_array(__a), _M_len(__l) { }
  26.  
  27. public:
  28. constexpr initializer_list() : _M_array(0), _M_len(0) { }
  29.  
  30. constexpr size_type
  31. size() { return _M_len; }
  32.  
  33. constexpr const_iterator
  34. begin() { return _M_array; }
  35.  
  36. constexpr const_iterator
  37. end() { return begin() + size(); }
  38. };
  39.  
  40. template<class _Tp>
  41. constexpr const _Tp*
  42. begin(initializer_list<_Tp> __ils)
  43. { return __ils.begin(); }
  44.  
  45. template<class _Tp>
  46. constexpr const _Tp*
  47. end(initializer_list<_Tp> __ils)
  48. { return __ils.end(); }
  49.  
  50. }
  51.  
  52. int main() {
  53. std::initializer_list<int> std_list = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  54. test::initializer_list<int> test_list = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  55. return 0;
  56. }
Compilation error #stdin compilation error #stdout 0s 3464KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'int main()':
prog.cpp:54:73: error: could not convert '{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}' from '<brace-enclosed initializer list>' to 'test::initializer_list<int>'
  test::initializer_list<int> test_list = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                                                                         ^
stdout
Standard output is empty