boost :: variant <T>到std :: string

Ton*_*ion 8 c++ string variant

我有一个看起来像这样的提升变体: typedef boost::variant<int, float, double, long, bool, std::string, boost::posix_time::ptime> variant;

我需要能够将此变体中的任何值转换为std :: string,我想知道是否有一些我可以使用的模板类型函数来执行此操作?

或者最有效的方法是什么?

我目前正在实现一堆重载函数,每个函数都采用一种类型,然后使用std::stringstream或进行转换,posix_time我会使用它的转换函数.也许有更好的方法?

Mar*_*tos 9

使用boost :: lexical_cast,它将整个stringstream事物隐藏在方便的包装器后面.这也适用于boost :: posix_time,因为它有一个合适的operator<<.