[webkit-dev] Strange Compile Error in HashMap/HashSet

Justin Haygood justin at xiondigital.net
Thu Sep 29 11:20:34 PDT 2005

Apparently, Microsoft Visual C++ 7.1 doesn't like HashMap:

{snip}\JavaScriptCore\kxmlcore\HashMap.h(46) : error C2440: 'specialization' :
cannot convert from 'T1::first_type (__cdecl *)(const T1 &)' to
(__cdecl *)(const
KXMLCore::HashMap<Key,Mapped,HashFunctions,KeyTraits,MappedTraits>::ValueType &)'
        None of the functions with this name in scope match the target type

This error is fired in 2 cases: different calling conventions (not the case here,
both using cdecl) or something I don't particularly understand (something along
the lines like casting from a TemplateType<Bla> to a TemplateType).

Any clues as to what its not liking?

Relevant code:

    typedef HashTable<KeyType, ValueType, extractFirst<ValueType>, HashFunctions,
ValueTraits> ImplType;

I highly believe its the extractFirst<ValueType> that's causing the failure,
which is defined as:

template<typename PairType> 
inline typename PairType::first_type extractFirst(const PairType& value)
    return value.first;

Justin Haygood

More information about the webkit-dev mailing list