On Thursday, 14 December 2017 at 22:47:15 UTC, dark777 wrote:
I know that this community is not from c ++, but for some time I studied how to do overload of ostream operators in c ++ and I even managed to get to this result, I got to this result in another post done here but I did not understand the that it returns this error below:


bin2.cxx:44:43: error: expected ‘,’ or ‘...’ before ‘(’ token
std::ostream& operator<<(std::ios_base& (__cdecl *_Pfn)(std::ios_base&))
                                           ^
bin2.cxx: In member function ‘std::ostream& BinStream::operator<<(std::ios_base&)’:
bin2.cxx:46:16: error: ‘_Pfn’ was not declared in this scope
    return os <<_Pfn;

I expect it's confused by __cdecl. I just copied the function declaration from VS' iostreams, so it might be tainted by how VS does things. Removing __cdecl might work, or just add
#define __cdecl __attribute__((__cdecl__))
A third option is to replace `std::ios_base& (__cdecl *Pfn)(std::ios_base&)` with `decltype(std::hex)& Pfn`.

All of this said, I'd suggest finding a C++ forum to get answers to these questions. While I'm happy to help, it's not really the place for these discussions.

--
  Biotronic
  • overload dark777 via Digitalmars-d-learn
    • Re: overload Biotronic via Digitalmars-d-learn

Reply via email to