main.cpp(123,7): error: no matching function for call to object of type 'expression_multiply<expression_parameter, expression_parameter>'
res = expr1(3);
^~~~~
main.cpp(73,9): note: candidate template ignored: substitution failure [with T =int]: no matching function for call to 'declval'
auto operator()(const T& v)const-> decltype(std::declval<lhs>()(v)*std::declval<rhs_given>(v)){return lhs::operator()(v)*rhs(v);}
^ ~~~
MSVC10:
1>f:\code\utilities\exprtemplate\exprtemplate\main.cpp(123): error C2893: Failed to specialize function template''unknown-type' expression_multiply<lhs,rhs_given>::operator ()(const T &) const'
prog.cpp:2:75: warning: character constant too long for its type
prog.cpp:5:123: warning: character constant too long for its type
prog.cpp:6: warning: identifier ‘decltype’ will become a keyword in C++0x
prog.cpp:10: error: stray ‘\’ in program
prog.cpp:10: error: stray ‘\’ in program
prog.cpp:10: error: stray ‘\’ in program
prog.cpp:10: error: stray ‘\’ in program
prog.cpp:10: error: stray ‘\’ in program
prog.cpp:10:114: error: empty character constant
prog.cpp:10:128: warning: character constant too long for its type
prog.cpp:17:13: warning: multi-character character constant
prog.cpp:21:24: warning: character constant too long for its type
prog.cpp:23:45: warning: character constant too long for its type
prog.cpp:1: error: function definition does not declare parameters
prog.cpp:4: error: expected unqualified-id before ‘^’ token
prog.cpp:7: error: expected unqualified-id before ‘^’ token