foo.cc: In member function 'HighInt HighInt::operator+(const HighInt&)':
foo.cc:23:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
23 | for (int i = 0; i < data.size()||i<other.data.size(); i++)
| ~~^~~~~~~~~~~~~
foo.cc:23:51: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
23 | for (int i = 0; i < data.size()||i<other.data.size(); i++)
| ~^~~~~~~~~~~~~~~~~~
foo.cc:25:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
25 | if(i<data.size()) t+=data[i];
| ~^~~~~~~~~~~~
foo.cc:26:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
26 | if(i<other.data.size()) t+=other.data[i];
| ~^~~~~~~~~~~~~~~~~~
foo.cc: In member function 'Im HighInt::sub(Im&, Im&)':
foo.cc:47:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
47 | for(int i=0,t=0;i<A.size();i++)
| ~^~~~~~~~~
foo.cc:50:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
50 | if (i<B.size()) t-=B[i];
| ~^~~~~~~~~
foo.cc: In function 'HighInt operator*(const HighInt&, int)':
foo.cc:78:45: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
78 | for (long long i = 0,t=0; i < A.data.size()||t; i++)
| ~~^~~~~~~~~~~~~~~
foo.cc:80:29: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
80 | if(i<A.data.size())
| ~^~~~~~~~~~~~~~
foo.cc: In function 'int main()':
foo.cc:107:14: error: no match for 'operator=' (operand types are 'Im' {aka 'std::vector<int>'} and 'int')
107 | a1 = n1;
| ^~
In file included from /usr/include/c++/9/vector:72,
from /usr/include/c++/9/queue:61,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:86,
from foo.cc:1:
/usr/include/c++/9/bits/vector.tcc:198:5: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]'
198 | vector<_Tp, _Alloc>::
| ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/vector.tcc:199:42: note: no known conversion for argument 1 from 'int' to 'const std::vector<int>&'
199 | operator=(const vector<_Tp, _Alloc>& __x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/c++/9/vector:67,
from /usr/include/c++/9/queue:61,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:86,
from foo.cc:1:
/usr/include/c++/9/bits/stl_vector.h:706:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = int; _Alloc = std::allocator<int>]'
706 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
| ^~~~~~~~
/usr/include/c++/9/bits/stl_vector.h:706:26: note: no known conversion for argument 1 from 'int' to 'std::vector<int>&&'
706 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
| ~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_vector.h:727:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = int; _Alloc = std::allocator<int>]'
727 | operator=(initializer_list<value_type> __l)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_vector.h:727:46: note: no known conversion for argument 1 from 'int' to 'std::initializer_list<int>'
727 | operator=(initializer_list<value_type> __l)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
foo.cc:109:24: error: no match for 'operator*' (operand types are 'Im' {aka 'std::vector<int>'} and 'int')
109 | a1 = a1*n1;
| ~~^~~
| | |
| | int
| Im {aka std::vector<int>}
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:391:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&)'
391 | operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:391:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:400:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&)'
400 | operator*(const complex<_Tp>& __x, const _Tp& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:400:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:409:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&)'
409 | operator*(const _Tp& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:409:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: mismatched types 'const std::complex<_Tp>' and 'int'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray<typename _Dom::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::valarray<typename _Dom::value_type>&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:109:25: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const typename std::valarray<_Tp>::value_type&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:109:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
109 | a1 = a1*n1;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const typename std::valarray<_Tp>::value_type&, const std::valarray<_Tp>&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:109:25: note: mismatched types 'const std::valarray<_Tp>' and 'int'
109 | a1 = a1*n1;
| ^~
foo.cc:110:14: error: no match for 'operator=' (operand types are 'Im' {aka 'std::vector<int>'} and 'int')
110 | a2 = n2;
| ^~
In file included from /usr/include/c++/9/vector:72,
from /usr/include/c++/9/queue:61,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:86,
from foo.cc:1:
/usr/include/c++/9/bits/vector.tcc:198:5: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>]'
198 | vector<_Tp, _Alloc>::
| ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/vector.tcc:199:42: note: no known conversion for argument 1 from 'int' to 'const std::vector<int>&'
199 | operator=(const vector<_Tp, _Alloc>& __x)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/c++/9/vector:67,
from /usr/include/c++/9/queue:61,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:86,
from foo.cc:1:
/usr/include/c++/9/bits/stl_vector.h:706:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = int; _Alloc = std::allocator<int>]'
706 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
| ^~~~~~~~
/usr/include/c++/9/bits/stl_vector.h:706:26: note: no known conversion for argument 1 from 'int' to 'std::vector<int>&&'
706 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
| ~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_vector.h:727:7: note: candidate: 'std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = int; _Alloc = std::allocator<int>]'
727 | operator=(initializer_list<value_type> __l)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_vector.h:727:46: note: no known conversion for argument 1 from 'int' to 'std::initializer_list<int>'
727 | operator=(initializer_list<value_type> __l)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
foo.cc:112:24: error: no match for 'operator*' (operand types are 'Im' {aka 'std::vector<int>'} and 'int')
112 | a2 = a2*n2;
| ~~^~~
| | |
| | int
| Im {aka std::vector<int>}
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:391:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&)'
391 | operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:391:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:400:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&)'
400 | operator*(const complex<_Tp>& __x, const _Tp& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:400:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:409:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&)'
409 | operator*(const _Tp& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:409:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: mismatched types 'const std::complex<_Tp>' and 'int'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray<typename _Dom::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::valarray<typename _Dom::value_type>&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
407 | _DEFINE_EXPR_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:407:5: note: template argument deduction/substitution failed:
foo.cc:112:25: note: mismatched types 'const std::_Expr<_Dom1, typename _Dom1::value_type>' and 'int'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const typename std::valarray<_Tp>::value_type&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:112:25: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
112 | a2 = a2*n2;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1187:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const typename std::valarray<_Tp>::value_type&, const std::valarray<_Tp>&)'
1187 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1187:1: note: template argument deduction/substitution failed:
foo.cc:112:25: note: mismatched types 'const std::valarray<_Tp>' and 'int'
112 | a2 = a2*n2;
| ^~
foo.cc:113:19: error: no match for 'operator+' (operand types are 'Im' {aka 'std::vector<int>'} and 'Im' {aka 'std::vector<int>'})
113 | cout << a1+a2<< endl;
| ~~^~~
| | |
| | vector<[...]>
| vector<[...]>
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/ios:40,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/stl_iterator.h:423:5: note: candidate: 'template<class _Iterator> std::reverse_iterator<_Iterator> std::operator+(typename std::reverse_iterator<_Iterator>::difference_type, const std::reverse_iterator<_Iterator>&)'
423 | operator+(typename reverse_iterator<_Iterator>::difference_type __n,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:423:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::reverse_iterator<_Iterator>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/ios:40,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/stl_iterator.h:1216:5: note: candidate: 'template<class _Iterator> std::move_iterator<_IteratorL> std::operator+(typename std::move_iterator<_IteratorL>::difference_type, const std::move_iterator<_IteratorL>&)'
1216 | operator+(typename move_iterator<_Iterator>::difference_type __n,
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:1216:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::move_iterator<_IteratorL>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6023:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
6023 | operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6023:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:56,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.tcc:1158:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
1158 | operator+(const _CharT* __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.tcc:1158:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: mismatched types 'const _CharT*' and 'std::vector<int>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:56,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.tcc:1174:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(_CharT, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
1174 | operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.tcc:1174:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6060:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)'
6060 | operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6060:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6076:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, _CharT)'
6076 | operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6076:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6088:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
6088 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6088:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6094:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&)'
6094 | operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6094:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6100:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&)'
6100 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6100:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6112:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&)'
6112 | operator+(const _CharT* __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6112:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: mismatched types 'const _CharT*' and 'std::vector<int>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6118:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(_CharT, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&)'
6118 | operator+(_CharT __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6118:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6124:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _CharT*)'
6124 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6124:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/string:55,
from /usr/include/c++/9/bits/locale_classes.h:40,
from /usr/include/c++/9/bits/ios_base.h:41,
from /usr/include/c++/9/ios:42,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/basic_string.h:6130:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::__cxx11::basic_string<_CharT, _Traits, _Alloc> std::operator+(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, _CharT)'
6130 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/include/c++/9/bits/basic_string.h:6130:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:331:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator+(const std::complex<_Tp>&, const std::complex<_Tp>&)'
331 | operator+(const complex<_Tp>& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:331:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:340:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator+(const std::complex<_Tp>&, const _Tp&)'
340 | operator+(const complex<_Tp>& __x, const _Tp& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:340:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:349:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator+(const _Tp&, const std::complex<_Tp>&)'
349 | operator+(const _Tp& __x, const complex<_Tp>& __y)
| ^~~~~~~~
/usr/include/c++/9/complex:349:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/complex:450:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::operator+(const std::complex<_Tp>&)'
450 | operator+(const complex<_Tp>& __x)
| ^~~~~~~~
/usr/include/c++/9/complex:450:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/deque:67,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:68,
from foo.cc:1:
/usr/include/c++/9/bits/stl_deque.h:393:5: note: candidate: 'template<class _Tp, class _Ref, class _Ptr> std::_Deque_iterator<_Tp, _Ref, _Ptr> std::operator+(std::ptrdiff_t, const std::_Deque_iterator<_Tp, _Ref, _Ptr>&)'
393 | operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_deque.h:393:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Deque_iterator<_Tp, _Ref, _Ptr>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/vector:68,
from /usr/include/c++/9/queue:61,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:86,
from foo.cc:1:
/usr/include/c++/9/bits/stl_bvector.h:303:3: note: candidate: 'std::_Bit_iterator std::operator+(std::ptrdiff_t, const std::_Bit_iterator&)'
303 | operator+(ptrdiff_t __n, const _Bit_iterator& __x)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_bvector.h:303:23: note: no known conversion for argument 1 from 'Im' {aka 'std::vector<int>'} to 'std::ptrdiff_t' {aka 'long int'}
303 | operator+(ptrdiff_t __n, const _Bit_iterator& __x)
| ~~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_bvector.h:393:3: note: candidate: 'std::_Bit_const_iterator std::operator+(std::ptrdiff_t, const std::_Bit_const_iterator&)'
393 | operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
| ^~~~~~~~
/usr/include/c++/9/bits/stl_bvector.h:393:23: note: no known conversion for argument 1 from 'Im' {aka 'std::vector<int>'} to 'std::ptrdiff_t' {aka 'long int'}
393 | operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
| ~~~~~~~~~~^~~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:405:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__plus, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__plus, typename _Dom1::value_type>::result_type> std::operator+(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
405 | _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:405:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:405:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__plus, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__plus, typename _Dom1::value_type>::result_type> std::operator+(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
405 | _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:405:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:405:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__plus, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__plus, typename _Dom1::value_type>::result_type> std::operator+(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
405 | _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:405:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:405:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__plus, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__plus, typename _Dom1::value_type>::result_type> std::operator+(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray<typename _Dom::value_type>&)'
405 | _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:405:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/valarray:603,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/bits/valarray_after.h:405:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__plus, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__plus, typename _Dom1::value_type>::result_type> std::operator+(const std::valarray<typename _Dom::value_type>&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
405 | _DEFINE_EXPR_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/valarray_after.h:405:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1185:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__plus, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__plus, _Tp>::result_type> std::operator+(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
1185 | _DEFINE_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1185:1: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1185:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__plus, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__plus, _Tp>::result_type> std::operator+(const std::valarray<_Tp>&, const typename std::valarray<_Tp>::value_type&)'
1185 | _DEFINE_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1185:1: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
from foo.cc:1:
/usr/include/c++/9/valarray:1185:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__plus, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__plus, _Tp>::result_type> std::operator+(const typename std::valarray<_Tp>::value_type&, const std::valarray<_Tp>&)'
1185 | _DEFINE_BINARY_OPERATOR(+, __plus)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/valarray:1185:1: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
113 | cout << a1+a2<< endl;
| ^~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/ios:40,
from /usr/include/c++/9/istream:38,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /usr/include/c++/9/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54,
from foo.cc:1:
/usr/include/c++/9/bits/stl_iterator.h:993:5: note: candidate: 'template<class _Iterator, class _Container> __gnu_cxx::__normal_iterator<_Iterator, _Container> __gnu_cxx::operator+(typename __gnu_cxx::__normal_iterator<_Iterator, _Container>::difference_type, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)'
993 | operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
| ^~~~~~~~
/usr/include/c++/9/bits/stl_iterator.h:993:5: note: template argument deduction/substitution failed:
foo.cc:113:20: note: 'Im' {aka 'std::vector<int>'} is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
113 | cout << a1+a2<< endl;
| ^~