この記事はBoost Advent Calendar 2011の参加記事です。 本稿では、Boostのコンポーネントの一つ、lexical_castの涙ぐましい最適化について解説します。 lexical_castとは この辺見てください。 安直な実装 まずは一番簡単な実装から見ていきましょう。 template <typename Target, typename Source> Target lexical_cast(const Source &arg) { std::stringstream ss; Target result; if (!(ss << arg && ss >> result)) throw boost::bad_lexical_cast(); return result; } この実装には、iostreamの遅さに由来する重大なパフォーマンスの問題があります。幾ら便利