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

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
And as with the others, __is_nothrow_destructible, which is what the concepts
depend on specifically:

  /// [concept.destructible], concept destructible
  template<typename _Tp>
    concept destructible = is_nothrow_destructible_v<_Tp>;

  /// [concept.constructible], concept constructible_from
  template<typename _Tp, typename... _Args>
    concept constructible_from
      = destructible<_Tp> && is_constructible_v<_Tp, _Args...>;

And so that gets used by every one of std::default_initializable,
std::move_constructible, std::copy_constructible, std::movable, std::copyable,
std::semiregular etc.

Reply via email to