2009-09-17 7 views
9

Je reçois un message d'erreur plutôt étrange lors d'une tentative de wcout un wstring en vC++ 2008 express:Erreur C2679 lors de la tentative d'utilisation de std :: wcout << wstring-var; vC++ 2008 Express

erreur C2679: binaire '< <': aucun opérateur trouvé qui prend un opérande à droite de type 'std :: wstring' (ou il n'y a pas de conversion acceptable)

Si je comprends bien, cela signifie que wcout n'accepte pas de wstring? Je demande à quelqu'un de compiler ce code sous Linux et ça fonctionne bien. J'ai également essayé le même code sur un autre ordinateur avec vC++ 2008 express et échoue toujours. Un problème connu avec std in vC++ 2008? J'utilise vC++ 2008 express sp1 avec toutes les mises à jour de KB948127. Je suis conscient que la console aura besoin de changements de page de code, mais ce n'est même pas la compilation. Merci.

Répondre

12

Vous devez #include <string>. Je ne suis pas sûr de ce que la norme dit, mais je suis tout à fait sûr que <iostream> n'est pas nécessaire pour exporter tous les <string>, le cas échéant.

[edit] Au moins cplusplus.com ne liste même pas string comme les types déclarés dans <iostream>. Non, ce n'est pas la norme, je sais ... [/ edit]

+0

Qu'est-ce qui vous trompe, c'est que la ligne qui déclare un 'wstring' fonctionne. Y compris vous obtient assez de pour pouvoir en déclarer un, mais pas 'operator <<' - juste assez utile pour blesser, je suppose. –

Questions connexes