1

私はこのコードスニペットを持っています:

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で完全に動作します....何か間違っている/エラーが表示されますか?

ティア:-)

4

0 に答える 0