Here's another good one for you. This also compiles (and runs fine on Solaris)
Properties.h
template <class K, class V> class Properties : public Printable
{
...etc...
protected:
map<K,V> myMap;
void addMap( map<K,V> mapToAdd);
...etc..
};
Properties.hpp
template <class K, class V> void Properties<K,V>::addMap( map<K,V> mapToAdd)
{
myMap.insert( mapToAdd.begin(), mapToAdd.end() );
}
And the wonderfully succint error:
c:\development\danlibs\src\properties.hpp(129) : error C2664: 'class std::_Tree,class std::allocator >,struct std::pair,class
std::allocator > const ,class std::basic_string,class std::allocator > >,struct std::map,class std::allocator >,class std::basic_string<
char,struct std::char_traits,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allocator<
char> > > >::iterator __thiscall std::map,class std::allocator >,class std::basic_string,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::insert(class std::_Tree,class std::allocator >,struct std::pair,class std::allocator > const ,class std::basic_string,class std::allocator > >,struct std::map,class std::allocator >,class std::basic_string,class std::allocator >,struct std::less,class std::allocator > >,
class std::allocator,class std::allocator > > >::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::iterator,const struct std::pair,class std::allocator > const ,class std::basic_string,class std::allocator > > &)' : cannot convert parameter 2 from 'class std::_Tree,class std::allocator >,struct std::pair,class std::allocator > const ,class std::basic_string,class std::allocator > >,struct std::map,class std::allocat
or >,class std::basic_string,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::iterator' to 'const struct std::pair,class std::allocator > const ,class std::basic_string,class std:
:allocator > > &'
Reason: cannot convert from 'class std::_Tree,class std::allocator >,struct std::pair,class std::allocator > co
nst ,class std::basic_string,class std::allocator > >,struct std::map,class std::allocator >,class std::basic_string,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::_Kfn,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >::iterator' to
'const struct std::pair,class std::allocator > const ,class std::basic_string,class std::allocator > >'
No constructor could take the source type, or constructor overload resolution was ambiguous
c:\program files\microsoft visual studio\vc98\include\xmemory(70) : while compiling class-template member function 'void __thiscall Properties,class std::allocator >,class std:
:basic_string,class std::allocator > >::addMap(class std::map,class std::allocator >,class std::basic_string
,class std::allocator >,struct std::less,class std::allocator > >,class std::allocator,class std::allocator > > >
)'