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

Locale Support

Boost , Chapter 1. Boost.Convert 2.0 , boost::cnv::stream Converter

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Локальная поддержка похожа на поддержку форматирования, о чем свидетельствует следующий пример:

namespace cnv = boost::cnv;
namespace arg = boost::cnv::parameter;

    boost::cnv::cstream cnv;
    std::locale  rus_locale;
    std::locale  eng_locale;
    char const* eng_locale_name = test::cnv::is_msc ? "English_United States.1251" : "en_US.UTF-8";
    char const* rus_locale_name = test::cnv::is_msc ? "Russian_Russia.1251" : "ru_RU.UTF-8";
    char const*    rus_expected = test::cnv::is_msc ? "1,235e-002" : "1,235e-02";
    char const*    eng_expected = test::cnv::is_msc ? "1.235e-002" : "1.235e-02";
    char const*      double_s01 = test::cnv::is_msc ? "1.2345E-002" : "1.2345E-02";
//  cnv(std::setprecision(4))(std::uppercase)(std::scientific);
    cnv(arg::precision = 4)
       (arg::uppercase = true)
       (arg::notation = cnv::notation::scientific);
    double double_v01 = convert<double>(double_s01, cnv).value_or(0);
    string double_s02 = convert<string>(double_v01, cnv).value_or("bad");
    BOOST_TEST(double_s01 == double_s02);
    try { rus_locale = std::locale(rus_locale_name); }
    catch (...) { printf("Bad locale %s.\n", rus_locale_name); exit(1); }
    try { eng_locale = std::locale(eng_locale_name); }
    catch (...) { printf("Bad locale %s.\n", eng_locale_name); exit(1); }
//  cnv(std::setprecision(3))(std::nouppercase);
    cnv(arg::precision = 3)(arg::uppercase = false);
    string double_rus = convert<string>(double_v01, cnv(rus_locale)).value_or("bad double_rus");
    string double_eng = convert<string>(double_v01, cnv(eng_locale)).value_or("bad double_eng");
    BOOST_TEST(double_rus == rus_expected);
    BOOST_TEST(double_eng == eng_expected);


PrevUpHomeNext

Статья Locale Support раздела Chapter 1. Boost.Convert 2.0 boost::cnv::stream Converter может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: boost::cnv::stream Converter ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:32:32/0.0052440166473389/1