Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Locale: Frequently Asked Questions

Boost , ,

Frequently Asked Questions
  • Стараюсь использовать какой-нибудь буст. Локальные функции и я получаю исключениеstd::bad_cast.

    Ответ:Вы, вероятно, пытаетесь использовать неправильныйstd::localeобъект. Всем подняться. Локальные инструменты ретранслируют наstd::localeграни объекта. Объект локализации должен быть сгенерирован с классомгенератораи затем передан функции или альтернативно глобальная локализация должна быть установлена с использованием функцииstd::locale::global(), так что глобальная локализация (и созданная по умолчанию) потребовала бы использования граней.
  • Я установил глобальную локализацию и попытался написать что-то для потоковой передачи, но все равно получил неправильный вывод.Например:
    #include
    intmain()
    std::locale:::gen""]);
Печатает номер вместо даты.
Ответ:Ты забываешь пропитать местность потоком. Изменение глобальной локализации не влияет на локализацию в существующихiostreamобъектах. Таким образом,std::outи другие глобальные потоки были созданы до изменения глобального локального буста. Локальные манипуляторы не оказывают никакого эффекта. Вам нужно написать:
#include
intmain()
std:::locale l = gen"";
std::locale:::global(l);
std:::cout.imbue(l);
std:::cout<<boost:::cout<<boost:::date<<: std::time<< std::48]
Prints a number instead of a date.
Answer: You forget to imbue the locale to the stream. Changing the global locale does not affect the locale in existing iostream objects. Thus because std::out and other global streams were created before changing the global locale Boost.Locale manipulators have no effect. You need to write:
#include <boost/locale.hpp>
#include <iostream>
int main()
{
std::locale l = gen("");
std::locale::global(l);
std::cout.imbue(l);
std::cout << boost::locale::as::date << std::time(0) << std::endl;
}
[ORIG_END] -->

Статья Boost.Locale: Frequently Asked Questions раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:50:25/0.0075678825378418/1