https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89793

Harald van Dijk <harald at gigawatt dot nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |harald at gigawatt dot nl

--- Comment #1 from Harald van Dijk <harald at gigawatt dot nl> ---
Your StringType provides a conversion operator to HTTPResponse, which
indirectly has std::allocator<char> as a private base class. Overload
resolution happens before access checks, so the fact that it is a private base
class does not prevent the construction of std::string from being ambiguous:
the conversion to HTTPResponse could be used followed by the construction of a
new std::string using the HTTPResponse as the allocator.

This appears to work the same way in GCC 8 as it does in GCC 7, although it is
possible that for whatever reason, the GCC 7 version ends up not including
std::allocator<char> as a base class.

Reply via email to