Hi,
I suspect the reason for this is the different constructor of is_less() and
is_iless(). is_iless() requres a local:
is_iless( const std::locale& Loc=std::locale() ) :
You can write a helper class:
class iless : std::binary_function< std::string, std::string, bool >
{
public:
iless();
bool operator()( std::string const&, std::string const& ) const;
private:
std::locale locale_;
};
that do the work of initializing the local for you.
Pirx!
"Marcia Chadly" schrieb im Newsbeitrag
news:24CB4FB4D2414BA9AB161DF13EDB1C68@ansoft.com...
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,
//std::greaterstd::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
#include
#include
#include
#include
#include
#include
#include <map>
#include <string>
#include <cwchar>
#include <locale>
Thanks - Marcia
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users