我有这段代码:
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;
我想要的是特定情况下 >> 运算符的特定实现(无符号字符)!好消息是它在 Visual Studio (2008, 2010) 上完美运行!
但不适用于 Borland C++!它给了我这个警告
[C++ 警告] myCpp.cpp(57): W8030 临时用于参数 '_MyChar' 在调用'myistringstream::operator >>(unsigned char &)'
我意识到我没有“看到”基类(istringstream)的所有其他“>>”实现(对于其他类型),即使我使用了 using std::istringstream::operator>>; 指示!
再次在 VS 上完美运行....你看到什么错误/错误吗?
TIA :-)