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

Getting Started

Boost , Chapter 1. Boost.Convert 2.0 , Chapter 1. Boost.Convert 2.0

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
[Note]Note

Учитывая вездесущность<boost::lexical_cast>и знакомство сообщества программирования с ним, здесь и далее в документации<boost::lexical_cast>часто упоминается в качестве ссылки.

Для твердолобых<boost::lexical_cast>пользователей или в качестве переходного пути к<boost::convert>, одно из<boost::convert>развертываний не сильно отличается от<boost::lexical_cast>и, по сути, исходная<boost::lexical_cast>функциональность легко развертывается через<boost::convert>интерфейс:

#include <boost/convert.hpp>
#include <boost/convert/lexical_cast.hpp>

using std::string;
using boost::lexical_cast;
using boost::convert;

// Definition of the default converter (optional)
struct boost::cnv::by_default : public boost::cnv::lexical_cast {};

try
{
    boost::cnv::lexical_cast cnv; // boost::lexical_cast-based converter
    int    i1 = lexical_cast<int>("123");          // boost::lexical_cast standard deployment
    int    i2 = convert<int>("123").value();       // boost::convert with the default converter
    int    i3 = convert<int>("123", cnv).value();  // boost::convert with an explicit converter
    string s1 = lexical_cast<string>(123);         // boost::lexical_cast standard deployment
    string s2 = convert<string>(123).value();      // boost::convert with the default converter
    string s3 = convert<string>(123, cnv).value(); // boost::convert with an explicit converter
    BOOST_TEST(i1 == 123);
    BOOST_TEST(i2 == 123);
    BOOST_TEST(i3 == 123);
    BOOST_TEST(s1 == "123");
    BOOST_TEST(s2 == "123");
    BOOST_TEST(s3 == "123");
}
catch (std::exception const& ex)
{
    // Please be aware that the conversion requests above can fail.
    // Use try'n'catch blocks to handle any exceptions thrown.
    // Ignore this at your peril!
    std::cerr << "Exception " << ex.what() << std::endl;
}

[Important]Important

По мере того, как мы исследуем<boost::convert>поведение и интерфейс дальше, сначала они могут показаться чрезмерно сложными, многословными и т. Д.<atoi()>... столь известный по всем неправильным причинам. Важно помнить, что запрос на преобразование — это только запрос, который может быть успешным, но также может быть неудачным... который может быть не таким редким или исключительным, как можно было бы надеяться.<boost::convert>(а также<boost::lexical_cast>) поведение и интерфейсы отражают эту реальность.


PrevUpHomeNext

Статья Getting Started раздела Chapter 1. Boost.Convert 2.0 Chapter 1. Boost.Convert 2.0 может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 1. Boost.Convert 2.0 ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:38:09/0.0059540271759033/0