namespace std::meta {
consteval strong_ordering type_order(info type_a, info type_b);
}
概要
2つの型のリフレクション間の順序を取得する。std::meta::infoは<=>をサポートしないが、この関数により型のリフレクション間で一貫した全順序を得ることができる。
戻り値
type_aとtype_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
処理系
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) ✅ - Visual C++: ??