23 Jan
2011
23 Jan
'11
4:28 p.m.
It is still throwing an exception with boost 1.45. Since it's working fine with MSVC10 then something must be wrong with gcc. Here are the combinations which I tested so far:
gcc 4.3.4 , boost 1.40 gcc 4.4.5 , boost 1.42 and 1.45
The problem is not in gcc, but somewhere in std/crt. The exception is thrown by std::use_facet() function, which doesn't find the locale you passed to trim(). Since, you don't actually pass any locale, it uses the global one, so I don't understand why it doesn't find it... Anyway, try passing some locale explicitly, and see what happens: boost::trim(str, std::locale("English_UK"));