Je viens de remarquer que je suis en utilisant le code suivant dans mon application C++ 11 (qui fonctionne très bien calme):fonction de la bibliothèque standard pour convertir un objet opérateur fournissant << à un std :: string
template <typename T>
std::string output_streamable_to_string(T const& kObject) {
std::ostringstream os;
os << kObject;
return os.str();
}
donc ma question est: est-ce une fonction existe dans la bibliothèque standard (std
) qui fournit cette fonctionnalité?
Je sais que std::to_string
existe, mais qui ne fonctionne qu'avec les types de données standard Library. Je veux convertir un boost::asio::ip::udp::endpoint
en std::string
. Depuis le boost::asio::ip::udp::endpoint
fournit seulement une fonction operator<<
, j'ai besoin de convertir le std::ostream
en std::string
.
Je crains qu'il est déjà la façon de le faire :-) Standard Library il –
ce que vous voulez que l'on appelle la sérialisation. Découvrez [protobuf] (https://developers.google.com/protocol-buffers/docs/overview), [msgpack] (https://github.com/msgpack/msgpack-c) ou quelque chose comme [serializer picojson] (https://github.com/d-led/picojson_serializer) –
@Dmitry Ledentsov: L'utilisation d'une bibliothèque/framework de sérialisation est ** complètement ** exagérée. Je veux juste convertir un type de données ou un objet simple en 'std :: string'. @ForEveR a répondu à la question. Je suis au courant des deux premières bibliothèques que vous avez mentionnées. –