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