fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <tuple>
  5.  
  6. template < class T1, class T2 >
  7. inline std::pair<T1, T2> operator+(const std::pair<T1, T2>& a, const std::pair<T1, T2>& b)
  8. {
  9. return std::make_pair<T1, T2>(a.first + b.first, a.second + b.second);
  10. }
  11.  
  12.  
  13. int main() {
  14. std::vector<std::pair<int, int>> v ( n );
  15. std::accumulate ( v.begin(), v.end(), std::make_pair(0, 0) );
  16. return 0;
  17. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:14:39: error: ‘n’ was not declared in this scope
  std::vector<std::pair<int, int>> v ( n );
                                       ^
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h: In instantiation of ‘_Tp std::accumulate(_InputIterator, _InputIterator, _Tp) [with _InputIterator = __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int> > >; _Tp = std::pair<int, int>]’:
prog.cpp:15:61:   required from here
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: error: no match for ‘operator+’ (operand types are ‘std::pair<int, int>’ and ‘std::pair<int, int>’)
  __init = __init + *__first;
                  ^
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note: candidates are:
In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/4.8/bits/char_traits.h:39,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/stl_iterator.h:333:5: note: template<class _Iterator> std::reverse_iterator<_Iterator> std::operator+(typename std::reverse_iterator<_Iterator>::difference_type, const std::reverse_iterator<_Iterator>&)
     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
     ^
/usr/include/c++/4.8/bits/stl_iterator.h:333:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::reverse_iterator<_Iterator>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0,
                 from /usr/include/c++/4.8/bits/char_traits.h:39,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/stl_iterator.h:1118:5: note: template<class _Iterator> std::move_iterator<_Iterator> std::operator+(typename std::move_iterator<_Iterator>::difference_type, const std::move_iterator<_Iterator>&)
     operator+(typename move_iterator<_Iterator>::difference_type __n,
     ^
/usr/include/c++/4.8/bits/stl_iterator.h:1118:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::move_iterator<_Iterator>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2365:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, const std::basic_string<_CharT, _Traits, _Alloc>&)
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2365:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:53:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.tcc:692:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const _CharT*, const std::basic_string<_CharT, _Traits, _Alloc>&)
     operator+(const _CharT* __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.tcc:692:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   mismatched types ‘const _CharT*’ and ‘std::pair<int, int>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:53:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.tcc:708:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(_CharT, const std::basic_string<_CharT, _Traits, _Alloc>&)
     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
     ^
/usr/include/c++/4.8/bits/basic_string.tcc:708:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2402:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2402:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2418:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, _CharT)
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
     ^
/usr/include/c++/4.8/bits/basic_string.h:2418:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2430:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, const std::basic_string<_CharT, _Traits, _Alloc>&)
     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2430:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2436:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::basic_string<_CharT, _Traits, _Alloc>&, std::basic_string<_CharT, _Traits, _Alloc>&&)
     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2436:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘const std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2442:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, std::basic_string<_CharT, _Traits, _Alloc>&&)
     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2442:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2454:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>&&)
     operator+(const _CharT* __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2454:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   mismatched types ‘const _CharT*’ and ‘std::pair<int, int>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2460:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(_CharT, std::basic_string<_CharT, _Traits, _Alloc>&&)
     operator+(_CharT __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2460:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2466:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, const _CharT*)
     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2466:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/string:52:0,
                 from /usr/include/c++/4.8/bits/locale_classes.h:40,
                 from /usr/include/c++/4.8/bits/ios_base.h:41,
                 from /usr/include/c++/4.8/ios:42,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from prog.cpp:1:
/usr/include/c++/4.8/bits/basic_string.h:2472:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, _CharT)
     operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
     ^
/usr/include/c++/4.8/bits/basic_string.h:2472:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/4.8/numeric:62:0,
                 from /usr/include/c++/4.8/bits/random.tcc:33,
                 from /usr/include/c++/4.8/random:52,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from prog.cpp:3:
/usr/include/c++/4.8/bits/stl_numeric.h:127:18: note:   ‘std::pair<int, int>’ is not derived from ‘std::basic_string<_CharT, _Traits, _Alloc>’
  __init = __init + *__first;
                  ^
In file included from /usr/include/c++/4.8/vector:65:0,
                 from prog.cpp:2:
/usr/include/c++/4.8/bits/stl_bvector.h:293:3: note: std::_Bit_iterator std::operator+(std::ptrdiff_t, const std::_Bit_iterator&)
   operator+(ptrdiff_t __n, const _Bit_iterator& __x)
   ^
/usr/include/c++/4.8/bits/stl_bvector.h:293:3: note:   no known conversion for argument 1 from ‘std::pair<int, int>’ to ‘std::ptrdiff_t {aka int}’
/usr/include/c++/4.8/bits/stl_bvector.h:379:3: note: std::_Bit_const_iterator std::operator+(std::ptrdiff_t, const std::_Bit_const_iterator&)
   operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
   ^
/usr/include/c++/4.8/bits/stl_bvector.h:379:3: note:   no known conversion for argument 1 from ‘std::pair<int, int>’ to ‘std::ptrdiff_t {aka int}’
stdout
Standard output is empty