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

履歴 編集

function
<meta>

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

namespace std::meta {
  consteval strong_ordering type_order(info type_a, info type_b);
}

概要

2つの型のリフレクション間の順序を取得する。std::meta::info<=>をサポートしないが、この関数により型のリフレクション間で一貫した全順序を得ることができる。

戻り値

type_atype_bが型を表す場合、それらの間の実装定義の全順序をstrong_orderingとして返す。

例外

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

#include <meta>
#include <compare>

int main() {
  // 同じ型の比較は equal
  static_assert(std::meta::type_order(^^int, ^^int) == std::strong_ordering::equal);
  // 異なる型は less または greater(実装定義)
  static_assert(std::meta::type_order(^^int, ^^double) != std::strong_ordering::equal);
}

出力

バージョン

言語

  • C++26

処理系

参照