Boost Format de la bibliothèque; obtenir std :: string
Je veux ajouter une chaîne de caractères qui je format à l'aide de la bibliothèque boost comme suit
boost::container::vector<std::string> someStringVector;
someStringVector.push_back(
format("after is x:%f y:%f and before is x:%f y:%f\r\n") %
temp.x %
temp.y %
this->body->GetPosition().x %
this->body->GetPosition().y;
Le compilateur se plaint qu'il ne peut pas convertir des types, et j'ai essayé en ajoutant .str() à la fin de ce format retourne, mais c'est encore plaint.
Le message d'erreur que j'ai eu était:
error C2664: 'void boost::container::vector<T>::push_back(
const std::basic_string<_Elem,_Traits,_Ax> &)' :
cannot convert parameter 1 from
'boost::basic_format<Ch>' to
'const std::basic_string<_Elem,_Traits,_Ax> &'
Quiconque d'avoir quelques connaissances?
source d'informationauteur moowiz2020
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'envelopper le format d'un appel à boost::str, comme suit:
L'ajout d'un ".str()" de l'objet au format devrait être suffisant (et qui fonctionne pour moi). Il n'est pas clair à partir de votre question exactement comment vous l'avez fait, mais j'ai remarqué que votre exemple est absent de la fermeture de parenthèses sur le push_back().
Notez que vous voulez l'appeler str() sur le format de l'objet renvoyé à partir de la dernière % de l'opérateur, de la façon la plus simple de le faire est de simplement envelopper toute la ligne format dans les parenthèses comme ceci: