Boost.Convert デフォルトコンバータ

Boost.Convertでは、boost::cvt名前空間by_defaultという型がデフォルトのコンバータクラスとなる。

デフォルトのコンバータは、先行宣言されているだけで定義はされていないので、デフォルトがどれなのかは、ユーザーが定義する。

#include <iostream>
#include <boost/convert.hpp>
#include <boost/convert/stream.hpp>

// ストリームによるコンバータを、デフォルトにする
struct boost::cnv::by_default : public boost::cnv::cstream {};

int main()
{
    boost::optional<int> result = boost::convert<int>("123");
    std::cout << result.get() << std::endl;
}

出力:

123