2009-09-17 11 views
9

++ 2008 express:Std :: wcout'u kullanmaya çalışırken hata C2679 << wstring-var; vC++ 2008 express Ben vc bir wstring wcout çalışırken oldukça garip hata mesajı alıyorum

hata C2679: ikili '< <': hayır operatörü sağ işlenen aldığı bulundu 'std :: wstring' türü (ya da kabul edilebilir bir dönüştürme yoktur)

Bunu doğru anlıyorsam, wach'ın bir wstut'u kabul etmediğini bildiriyor? Birisinin bu kodu linux altında derlemesini rica ediyorum ve iyi çalışıyor. Aynı kodu vC++ 2008 express ile başka bir bilgisayarda da denedim ve hala başarısız oluyor. VC++ 2008 ile bilinen bir sorun mu var?

#include <iostream> 

int main() 
{ 
std::wstring unicode_test = L"Unicode var"; 
std::wcout << L"Unicode non-var" << std::endl; 
std::wcout << unicode_test << std::endl; //<-- This line fails! 
} 

KB948127'ye kadar olan tüm güncelleştirmelerle vC++ 2008 express sp1 kullanıyorum. Konsolun kod sayfası değişikliklerine ihtiyaç duyacağının farkındayım, ancak bu bile derleme değil. Teşekkürler.

cevap

12

#include <string>'a ihtiyacınız vardır. Standardın ne dediğinden emin değilim, ancak <iostream>'un, varsa <string>'un tümünü vermek için gerekli olmadığından eminim.

[değiştir] En az cplusplus.com, <iostream> içinde bildirilen türler olarak string listelemesini bile listelemez. Hayır, standart değil, biliyorum ... [/ edit]

+0

Ne aptallar bir "wstring" ilan ettiğidir. da dahil olmak üzere, 'dan birini alabilmeniz yeterlidir, ancak' operatör << 'değil, sadece incinecek kadar yararlıdır, sanırım. –

İlgili konular