最終更新日時(UTC):
が更新

履歴 編集

function
<meta>

std::meta::is_nothrow_swappable_with_type(C++26)

namespace std::meta {
  consteval bool is_nothrow_swappable_with_type(info type_dst, info type_src);
}

概要

例外を送出せずに指定した2つの型の間でswap可能かを判定する。std::is_nothrow_swappable_withに対応する。

戻り値

type_dsttype_srcが表す型の間で例外を送出せずにswap可能な場合にtrueを返す。

例外

type_dstまたはtype_srcが型を表さない場合、std::meta::exception例外を送出する。

#include <meta>

struct A {};
struct B {};
void swap(A&, B&) noexcept {}
void swap(B&, A&) noexcept {}

struct X {};
struct Y {};
void swap(X&, Y&) noexcept(false) {}
void swap(Y&, X&) noexcept(false) {}

int main() {
  static_assert(std::meta::is_nothrow_swappable_with_type(^^A&, ^^B&));
  static_assert(!std::meta::is_nothrow_swappable_with_type(^^X&, ^^Y&));
}

出力

バージョン

言語

  • C++26

処理系

参照