fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<class T>
  5. void functionWhichIteratesOverBobs(T &bobs)
  6. {
  7. int totalAge = 0;
  8. for(auto &bob: bobs)
  9. {
  10. totalAge += bob.age;
  11. }
  12. }
  13.  
  14.  
  15. int main() {
  16. int i;
  17. functionWhichIteratesOverBobs(i); // <--- error
  18. return 0;
  19. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In instantiation of 'void functionWhichIteratesOverBobs(T&) [with T = int]':
prog.cpp:17:33:   required from here
prog.cpp:8:5: error: 'begin' was not declared in this scope
     for(auto &bob: bobs)
     ^
prog.cpp:8:5: note: suggested alternatives:
In file included from /usr/include/c++/4.9/bits/basic_string.h:42:0,
                 from /usr/include/c++/4.9/string:52,
                 from /usr/include/c++/4.9/bits/locale_classes.h:40,
                 from /usr/include/c++/4.9/bits/ios_base.h:41,
                 from /usr/include/c++/4.9/ios:42,
                 from /usr/include/c++/4.9/ostream:38,
                 from /usr/include/c++/4.9/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.9/initializer_list:89:5: note:   'std::begin'
     begin(initializer_list<_Tp> __ils) noexcept
     ^
/usr/include/c++/4.9/initializer_list:89:5: note:   'std::begin'
prog.cpp:8:5: error: 'end' was not declared in this scope
     for(auto &bob: bobs)
     ^
prog.cpp:8:5: note: suggested alternatives:
In file included from /usr/include/c++/4.9/bits/basic_string.h:42:0,
                 from /usr/include/c++/4.9/string:52,
                 from /usr/include/c++/4.9/bits/locale_classes.h:40,
                 from /usr/include/c++/4.9/bits/ios_base.h:41,
                 from /usr/include/c++/4.9/ios:42,
                 from /usr/include/c++/4.9/ostream:38,
                 from /usr/include/c++/4.9/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.9/initializer_list:99:5: note:   'std::end'
     end(initializer_list<_Tp> __ils) noexcept
     ^
/usr/include/c++/4.9/initializer_list:99:5: note:   'std::end'
stdout
Standard output is empty