fork download
  1. #include <initializer_list>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void foo(const initializer_list<int>& row_vector) { cout << size(row_vector) << "x1 - FIRST\n"; }
  7. void foo(const initializer_list<initializer_list<int>>& matrix) { cout << size(matrix) << 'x' << size(*begin(matrix)) << " - SECOND\n"; }
  8.  
  9. int main() {
  10. foo({ 1, 2, 3 });
  11. foo({ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } });
  12. foo({ { 1 }, { 2 }, { 3 } });
  13. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'void foo(const std::initializer_list<int>&)':
prog.cpp:6:76: error: 'size' was not declared in this scope
 void foo(const initializer_list<int>& row_vector) { cout << size(row_vector) << "x1 - FIRST\n"; }
                                                                            ^
prog.cpp: In function 'void foo(const std::initializer_list<std::initializer_list<int> >&)':
prog.cpp:7:86: error: 'size' was not declared in this scope
 void foo(const initializer_list<initializer_list<int>>& matrix) { cout << size(matrix) << 'x' << size(*begin(matrix)) << " - SECOND\n"; }
                                                                                      ^
prog.cpp: In function 'int main()':
prog.cpp:12:29: error: call of overloaded 'foo(<brace-enclosed initializer list>)' is ambiguous
  foo({ { 1 }, { 2 }, { 3 } });
                             ^
prog.cpp:6:6: note: candidate: void foo(const std::initializer_list<int>&)
 void foo(const initializer_list<int>& row_vector) { cout << size(row_vector) << "x1 - FIRST\n"; }
      ^
prog.cpp:7:6: note: candidate: void foo(const std::initializer_list<std::initializer_list<int> >&)
 void foo(const initializer_list<initializer_list<int>>& matrix) { cout << size(matrix) << 'x' << size(*begin(matrix)) << " - SECOND\n"; }
      ^
stdout
Standard output is empty