将提供 operator<< 的对象转换为 std::string 的标准库函数

Standard Library function to convert an object providing operator<< to a std::string

我刚注意到我在我的 C++11 应用程序中使用了以下代码(运行良好):

template <typename T>
std::string output_streamable_to_string(T const& kObject) {
  std::ostringstream os;
  os << kObject;

  return os.str();
}

所以我的问题是:标准库 (std) 中是否存在提供此功能的函数?

我知道 std::to_string 存在,但它只适用于标准库数据类型。我想将 boost::asio::ip::udp::endpoint 转换为 std::string。由于 boost::asio::ip::udp::endpoint 只提供了一个 operator<< 功能,我需要将 std::ostream 转换为 std::string.

不,标准C++中没有这样的函数。但是因为你使用了 boost - 你可以使用 boost::lexical_cast,或者只使用你自己的。