http://www.boost.org/doc/libs/1_51_0/doc/html/boost_lexical_cast/performance.html
このリンクを考えてみてください。文字列から文字列への変換は非常に高速です。
すべてのテストは、次のコードブロックの10000回の反復で、実行速度をミリ秒単位で測定します。
    typedef BOOST_DEDUCED_TYPENAME ::boost::type_traits::ice_or<
            ::boost::detail::is_xchar_to_xchar<Target, src >::value,
            ::boost::detail::is_char_array_to_stdstring<Target, src >::value,
            ::boost::type_traits::ice_and<
                 ::boost::is_same<Target, src >::value,
                 ::boost::detail::is_stdstring<Target >::value
            >::value
    > shall_we_copy_t;
私たちの場合shall_we_copy_t::valueは真になります。なぜなら、3番目のケースが私たちのために働くからです(Targetそしてsrc等しいタイプであり、Targetタイプはですstd::basic_string)。
    typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
        shall_we_copy_t::value,
        ::boost::detail::lexical_cast_copy<src >,
        BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
             shall_we_copy_with_dynamic_check_t::value,
             ::boost::detail::lexical_cast_dynamic_num<Target, src >,
             ::boost::detail::lexical_cast_do_cast<Target, src >
        >::type
    >::type caster_type;
がtrueであるため、shall_we_copy_t::valuecaster_typeは次のようになります。lexical_cast_copy
return caster_type::lexical_cast_impl(arg);
だから、と呼ばれるlexical_cast_copy::lexical_cast_impl、それは非常に簡単です
    template <typename Source>
    struct lexical_cast_copy
    {
        static inline Source lexical_cast_impl(const Source &arg)
        {
            return arg;
        }
    };