2009-09-17 5 views
9

++ 2008 Expressの場合:std :: wcout << wstring-var;を使用しようとするとエラーC2679が発生する。 VC++ 2008 Expressの私はVCでのwstringをwcoutしようとする奇妙エラーメッセージが出てい

エラーC2679:バイナリ「< <」:なしオペレータは、右側のオペランドをとる見つかりません'std :: wstring'型の(または許容される変換はありません)

これを正しく理解すれば、wcoutはwstringを受け入れないと報告していますか?私はLinuxの下でこのコードをコンパイルするよう誰かに頼んで、うまく動作します。私も同じコードを別のコンピュータでvC++ 2008 Expressで試してみましたが、まだ失敗します。 vC++ 2008のstdに関する既知の問題?

#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までのすべてのアップデートでvC++ 2008 express sp1を使用しています。私はコンソールがコードページの変更を必要とすることを知っているが、これはコンパイルされていない。ありがとう。

答えて

12

#include <string>が必要です。私は標準が何を言っているのか分からないが、(もしあれば)のすべてをエクスポートするのに、<iostream>は必要ないと確信している。

[編集]少なくともcplusplus.comは、<iostream>で宣言された型としてstringもリストしません。いいえ、それは標準ではありません。私は知っています... [編集]

+0

'wstring'を宣言する行がうまくいくことはなんですか? を含めると、あなたにはというものがありますが、 'operator <<'は宣言できません。 –

関連する問題