https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109482
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2023-04-12
Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org
Status|UNCONFIRMED |ASSIGNED
Ever confirmed|0 |1
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I see the problem, but it's a pain.
For Solaris the in_addr struct looks roughly like:
struct in_addr {
union {
struct bytes { char b[4]; };
in_addr_t s_addr;
};
};
which means that a value-initialized in_addr does not have s_addr as the active
member of the union, and so we can't access it in constexpr contexts.
I think this means that the basic_endpoint default ctor cannot be constexpr
before C++20. Sigh.