use boost::lexical_cast in place of direct use of std::ostringstream