
Compiling the folowing using is_iless as the predicate for a multi index container results in errors. When is_less is used instead, it compiles fine. typedef mi::multi_index_container< GTLayer, mi::indexed_by< mi::sequenced<>, // list-like index mi::ordered_unique< mi::tag<name>, mi::const_mem_fun<GTLayer, std::string, >Layer::GetLayerName>, //std::greater<std::string> ::boost::algorithm::is_iless // names sorted > > > layer_container; The error messages are - Error 4 error C2440: 'type cast' : cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'unsigned char' C:\Program Files\Microsoft Visual Studio 8\VC\include\xlocale 561 Error 3 error C2440: 'type cast' : cannot convert from 'unsigned char' to 'std::basic_string<_Elem,_Traits,_Ax>' C:\Program Files\Microsoft Visual Studio 8\VC\include\xlocale 583 Is this an include problem? I have tried the following includes - #include <boost/multi_index_container.hpp> #include <boost/multi_index/mem_fun.hpp> #include <boost/multi_index/ordered_index.hpp> #include <boost/multi_index/sequenced_index.hpp> #include <boost/algorithm/string/compare.hpp> #include <boost/algorithm/string.hpp> #include <boost/algorithm/string/predicate.hpp> #include <map> #include <string> #include <cwchar> #include <locale> Thanks - Marcia