Próbuję zrozumieć, jak użyć parametru boost :: locale, aby porównać ciągi ignorujące przypadek i warianty. I bezpośrednio spróbował kod z dokumentacji Boost:Dlaczego std :: bad_cast jest generowany przez boost :: locale?
http://www.boost.org/doc/libs/1_51_0/libs/locale/doc/html/collation.html
boost::locale::generator gen;
std::locale vLocale = gen("");
std::wstring a=L"Façade", b=L"facade";
// Following will throw bad_cast
bool eq = std::use_facet<boost::locale::collator<wchar_t>>(vLocale).compare(
boost::locale::collator_base::secondary,
a,
b
) == 0;
if(eq) std::cout << "OK" << std::endl;
Ten kod rzuci wyjątek std :: bad_cast gdy uruchomiony. Próbowałem wielu parametrów w konstruktorze boost :: locale :: generator. Czy ktoś wie o napotkanym problemie?
Używam C++ 11 zg ++ 4.6 i zwiększyć 1.51.0
Tak jak podpowiedź, 'bad_cast' _exception_ sygnalizuje, że podane' locale' nie ma żądanego 'aspektu'. –