自分がboost全然知らないので勉強目的 かつ 身内への宣伝を兼ねて色々使ってみることにする。
最初はboost::lexical_cast
使い方はとっても簡単で、C++式のキャストと同じ書き方で文字列→数値、数値→文字列の変換を行う。自作クラスでも型変換子だか、演算子のオーバーロードすれば使えると思う(適当)。後で試してみるか…
サンプル
#include <iostream> #include <string> #include <boost/lexical_cast.hpp> int main() { //using宣言 using boost::lexical_cast; using boost::bad_lexical_cast; using std::cout; using std::endl; using std::string; string str = "-1234"; int a; double b = 3.14; try { a = lexical_cast<int>(str);//"-1234"から-1234へ str = lexical_cast<string>(b);//3.14から"3.14"へ } catch(const bad_lexical_cast& e) { cout << e.what() << endl; } cout << a << endl; cout << str << endl; return 0; }
実行結果
-1234 3.1400000000000001 続行するには何かキーを押してください . . .
ということで今回はこれで終わりにしよう。