0

さまざまな文字タイプを出力するために使用される特性クラスがあります。

template <typename T>
class traits {
public:
    static std::basic_ostream<T>& tout;
};
template<>
std::ostream& traits<char>::tout = std::cout;
template<>
std::wostream& traits<unsigned short>::tout = std::wcout;

gcc (g++) バージョン 3.4.5 (やや古い) がエラーをスローしています: 「'&' トークンの前にコンストラクター デストラクタまたは型変換が必要です」

そして、これを解決する良い方法があるかどうか疑問に思っています。

(_O_WTEXTについても怒っているので、誰かがそれについて洞察を持っているなら、私もそれを感謝します)

4

1 に答える 1

1

wchar_tとは異なるタイプですunsigned short。あなたは使用する必要があります

template<>
std::wostream& traits<wchar_t>::tout = std::wcout;

それらは同じ表現を使用する場合がありますが、それでも異なる整数型です。char、、signed charの3つとよく似ていunsigned charます。

また、正しいヘッダー(<ostream>またはinclude <iostream>)が含まれていることを確認してください。

于 2010-03-24T20:54:38.660 に答える