数値と文字列の相互変換を行う boost::lexical_cast

C++Builder 2009からBoostが標準添付されて、とても使いやすくなりました。

boost::lexical_castは、数値と文字列の相互変換を行う関数です。

型によって関数を使い分ける必要がなく、同じように書くことができます。

#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;

int n = boost::lexical_cast<int>("3");
string s = boost::lexical_cast<string>(123);

C++テンプレートテクニック』には戻り値の型を推論することで、型の指定を不要にする方法が紹介されています。
次のようなコードを書くことができます。

int n = lexical("3");
string s = lexical(123);

詳しくは『C++テンプレートテクニック』をご覧下さい。

コメント

  1. Pingback: sprintfとバッファオーバーフロー | piroshikiのサイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください