That doesn’t help:
With the code in svn, clang also gives an error:
CXX libvcmi_la-ERMInterpreter.lo
ERMInterpreter.cpp:2361:8: error: no matching function for call to 'isA'
if( isA<VNIL>(erm->eval(exp.children[1]) ) )
^~~~~~~~~
./ERMInterpreter.h:320:7: note: candidate function [with T = VERMInterpreter::VNIL, SecType = boost::variant<VERMInterpreter::VNIL,
boost::recursive_wrapper<VERMInterpreter::VNode>, VERMInterpreter::VSymbol, boost::variant<char, double, int, std::basic_string<char>,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, ERM::Tcommand,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>] not viable: no known conversion from
'VERMInterpreter::VOption' (aka 'variant<VERMInterpreter::VNIL, boost::recursive_wrapper<VNode>, VERMInterpreter::VSymbol, TLiteral,
ERM::Tcommand>') to 'boost::variant<VERMInterpreter::VNIL, boost::recursive_wrapper<VERMInterpreter::VNode>, VERMInterpreter::VSymbol,
boost::variant<char, double, int, std::basic_string<char>, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_>, ERM::Tcommand, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_> &' for 1st argument
bool isA(SecType & opt)
^
as well as icc:
ERMInterpreter.cpp(2361): error: no instance of function template "VERMInterpreter::isA" matches the argument list
argument types are: (VERMInterpreter::VOption)
if( isA<VNIL>(erm->eval(exp.children[1]) ) )
^
[/code]