私はこのコードスニペットを持っています:
class myistringstream : public std::istringstream
{
public:
using std::istringstream::operator>>;
myistringstream (const std::string &str): std::istringstream(str)
{
}
myistringstream& operator >> (unsigned char& _MyChar)
{
int temp;
// my stuff here with temp and _MyChar ...
std::istringstream::operator>> (temp);
_MyChar = static_cast<unsigned char> (temp);
return *this;
}
};
これは使用法です: ファイル: myCpp.cpp
54: unsigned char myUnsignedChar;
55: int myIntVar;
56: myistringstream ss (myStr);
57: ss >> myIntVar; //
58: ss >> myUnsignedChar;
私が欲しいのは、特定のケース (unsigned char) での >> 演算子の特定の実装です! 良いニュースは、Visual Studio (2008、2010) で完全に動作することです!
Borland C++ では動作しません。それは私にこの警告を与える
[C++ 警告] myCpp.cpp(57): 'myistringstream::operator >>(unsigned char &)' の呼び出しでパラメーター '_MyChar' に W8030 一時使用
using std::istringstream::operator>>; を使用したにもかかわらず、基本クラス (istringstream) の他のすべての ">>" 実装 (他の型の場合) が「表示」されないことに気付きました。指令!
再びVSで完全に動作します....何か間違っている/エラーが表示されますか?
ティア:-)