https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105146
Bug ID: 105146 Summary: std::bad_expected_access constructor missing std::move for error type Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hewillk at gmail dot com Target Milestone: --- #include <expected> struct E { E() = default; E(const E&) = delete; E& operator=(const E&) = delete; E(E&&) = default; E& operator=(E&&) = default; }; int main() { std::expected<int, E>{std::unexpect}.value(); } https://godbolt.org/z/1hfzYo1cK