on Tue Oct 30 2007, "Ovanes Markarian"
Hello!
Does anybody else experience a problem using enable_if templates in Visual C++ Express 2005 SP1? I get compiler errors in this code:
template<class LookUpType_> typename boost::enable_if_c
::type at(LookUpType_ const& key)const { return has_key(view_, key); } template<class LookUpType_> typename boost::disable_if_c
::type at(LookUpType_ const& key) { return has_key(view_, key); } It blames that type is not a member of enable_if_c or disable_if_c? This is really strance, since this should not be considered by compiler as a possible template instantiation. is_const is an enum value containing either true or false.
In order for SFINAE to work, at least one argument to [dis|en]able_if
has to depend on a template argument (in this case, LookUpType_ is the
only one). As written, none of them do.
I don't know what you're doing with is_const, but at least in the
Boost world that is a template that requires a template argument in
that context. For example,
template<class LookUpType_>
typename boost::disable_if_c