fork download
  1. main.cpp: In function 'typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type operator||(lhsexpr, container&) [with lhsexpr = expression_multiply<expression_parameter, expression_parameter>, container = std::vector<int>, typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type = expression_multiply<expression_parameter, expression_parameter>]':
  2. main.cpp:125:24: instantiated from here
  3. main.cpp:108:9: error: no match for call to '(expression_multiply<expression_parameter, expression_parameter>) (int&)'
  4. main.cpp:70:7: note: candidate is:
  5. main.cpp:77:10: note: template<class T> decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) expression_multiply::operator()(const T&) const [with T = T, lhs = expression_parameter, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_parameter::operator()(v) * expression_parameter::operator()(v))), expression_multiply<lhs, rhs_given>::rhs = inherit_again<expression_parameter>]
  6. main.cpp: In function 'typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type operator||(lhsexpr, container&) [with lhsexpr = expression_add<expression_constant<int>, expression_parameter>, container = std::vector<double>, typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type = expression_add<expression_constant<int>, expression_parameter>]':
  7. main.cpp:134:24: instantiated from here
  8. main.cpp:108:9: error: no match for call to '(expression_add<expression_constant<int>, expression_parameter>) (double&)'
  9. main.cpp:41:7: note: candidate is:
  10. main.cpp:48:10: note: template<class T> decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) expression_add::operator()(const T&) const [with T = T, lhs = expression_constant<int>, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_constant::operator() [with T = T, V = int](v) + expression_parameter::operator()(v))), expression_add<lhs, rhs_given>::rhs = inherit_again<expression_parameter>]
  11. main.cpp: In function 'typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type operator||(lhsexpr, container&) [with lhsexpr = expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >, container = std::vector<int>, typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type = expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >]':
  12. main.cpp:141:10: instantiated from here
  13. main.cpp:108:9: error: no match for call to '(expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >) (int&)'
  14. main.cpp:41:7: note: candidate is:
  15. main.cpp:48:10: note: template<class T> decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) expression_add::operator()(const T&) const [with T = T, lhs = expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, rhs_given = expression_multiply<expression_constant<char>, expression_parameter>, decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_add::operator() [with T = T, lhs = expression_parameter, rhs_given = expression_multiply<expression_parameter, expression_parameter>, decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_parameter::operator()(v) + expression_multiply::operator() [with T = T, lhs = expression_parameter, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_parameter::operator()(v) * expression_parameter::operator()(v))), expression_multiply<lhs, rhs_given>::rhs = inherit_again<expression_parameter>](v))), expression_add<lhs, rhs_given>::rhs = inherit_again<expression_multiply<expression_parameter, expression_parameter> >](v) + expression_multiply::operator() [with T = T, lhs = expression_constant<char>, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_constant::operator() [with T = T, V = char](v) * expression_parameter::operator()(v))), expression_multiply<lhs, rhs_given>::rhs = inherit_again<expression_parameter>](v))), expression_add<lhs, rhs_given>::rhs = inherit_again<expression_multiply<expression_constant<char>, expression_parameter> >]
  16. main.cpp: In function 'typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type operator||(lhsexpr, container&) [with lhsexpr = expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >, container = std::vector<double>, typename std::enable_if<std::is_base_of<expression_part, lhsexpr>::value, lhsexpr>::type = expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >]':
  17. main.cpp:142:10: instantiated from here
  18. main.cpp:108:9: error: no match for call to '(expression_add<expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, expression_multiply<expression_constant<char>, expression_parameter> >) (double&)'
  19. main.cpp:41:7: note: candidate is:
  20. main.cpp:48:10: note: template<class T> decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) expression_add::operator()(const T&) const [with T = T, lhs = expression_add<expression_parameter, expression_multiply<expression_parameter, expression_parameter> >, rhs_given = expression_multiply<expression_constant<char>, expression_parameter>, decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_add::operator() [with T = T, lhs = expression_parameter, rhs_given = expression_multiply<expression_parameter, expression_parameter>, decltype ((lhs:: operator()(v) + expression_add<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_parameter::operator()(v) + expression_multiply::operator() [with T = T, lhs = expression_parameter, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_parameter::operator()(v) * expression_parameter::operator()(v))), expression_multiply<lhs, rhs_given>::rhs = inherit_again<expression_parameter>](v))), expression_add<lhs, rhs_given>::rhs = inherit_again<expression_multiply<expression_parameter, expression_parameter> >](v) + expression_multiply::operator() [with T = T, lhs = expression_constant<char>, rhs_given = expression_parameter, decltype ((lhs:: operator()(v) * expression_multiply<lhs, rhs_given>::rhs:: operator()(v))) = decltype ((expression_constant::operator() [with T = T, V = char](v) * expression_parameter::operator()(v))), expression_multiply<lhs, rhs_given>::rhs = inherit_again<expression_parameter>](v))), expression_add<lhs, rhs_given>::rhs = inherit_again<expression_multiply<expression_constant<char>, expression_parameter> >]
  21.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty