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

            Bug ID: 79114
           Summary: [6/7 Regression] std::throw_with_nested("string
                    literal") is rejected
           Product: gcc
           Version: 6.3.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

#include <exception>
int main() { std::throw_with_nested("string literal"); }


In file included from /usr/include/c++/6.3.1/exception:171:0,
                 from ex.cc:1:
/usr/include/c++/6.3.1/bits/nested_exception.h: In instantiation of ‘void
std::throw_with_nested(_Tp&&) [with _Tp = const char (&)[15]]’:
ex.cc:2:53:   required from here
/usr/include/c++/6.3.1/bits/nested_exception.h:121:7: error: static assertion
failed: throw_with_nested argument must be CopyConstructible
       static_assert(_CopyConstructible::value,
       ^~~~~~~~~~~~~

I added the static assertion because the standard says that's what's required,
but it seems to be a defect in the standard because it doesn't work with the
example above. I'm reporting a defect, and will relax the assertion.

Reply via email to