Comment std::stringstream poignée wchar_t* dans l'opérateur<<?

Étant donné que l'extrait de code suivant ne compile pas:

std::stringstream ss;
ss << std::wstring(L"abc");

Je ne pense pas que ce serait, soit:

std::stringstream ss;
ss << L"abc";

Mais il n' (sur VC++ au moins). Je suppose que cela est dû à la suivante ostream::operator<< surcharge:

ostream& operator<< (const void* val );

Est-ce ont le potentiel d'silencieusement briser mon code, si j'ai, par inadvertance, mélange de types de caractères?

Êtes-vous intentionnellement à l'aide de stringstream au lieu de wstringstream?
Non, c'est en fait l'inverse. Je suis en utilisant wstringstream tout le temps et parfois oublier d'ajouter L avant de la chaîne, en particulier lors de la rédaction du journal des messages.

OriginalL'auteur Pedro d'Aquino | 2010-10-01