- meta[meta header]
- std::meta[meta namespace]
- function template[meta id-type]
- cpp26[meta cpp]
namespace std::meta {
template <reflection_range R = std::initializer_list<info>>
consteval info common_reference(R&& type_args);
}- info[link info.md]
- reflection_range[link reflection_range.md]
複数の型の共通参照型を求める。std::common_referenceに対応する。
type_argsの各要素が表す型に対してstd::common_reference相当の変換を適用した結果の型のリフレクションを返す。
type_argsの各要素が型を表さない場合、std::meta::exception例外を送出する。
#include <meta>
int main() {
static_assert(std::meta::common_reference({^^int&, ^^const int&}) == ^^const int&);
}- C++26
- Clang: ??
- GCC: 16 (
-freflectionオプション指定) [mark verified] - Visual C++: ??