Package: g++
Version: 3.2.3-20030331

If I have the following code:

#include <sstream>

int foo()
{
  std::streampos pos;
  pos - 1;
}

When I compile this with "g++ -Wall test.cc", this gives me:

test.cc: In function `int foo()':
test.cc:6: ISO C++ says that `std::fpos<_StateT>
std::fpos<_StateT>::operator-(long int) [with _StateT = mbstate_t]' and `
operator-' are ambiguous even though the worst conversion for the former is
better than the worst conversion for the latter


I think this means that there are both a global operator- and a member operator- defined for std::fpos<_StateT>. I can work around this (I can do pos -= 1 and afterwards pos += 1), but I'd much rather be able to simply subtract from the streampos.





Reply via email to