std::meta::has_c_language_linkage
ja.cppreference.net より
| ヘッダ <meta>
|
||
consteval bool has_c_language_linkage( std::meta::info r );
|
で定義 (C++26以上) | |
r が表すものが "C" 言語リンケージを持つ変数、関数、または関数型であるかどうかを判定します (extern "C")。そうである場合は true を返し、そうでない場合は false を返します。
引数
| r | - | リフレクション値 |
戻り値
truer が表すものが "C" 言語リンケージを持つ場合は false 、そうでない場合は
。
ノートrr が変数、関数、または関数型を表していない場合(例えば false が関数テンプレートを表している場合)、結果は
になります。
例
#include <meta>
extern "C" void foo();
static_assert(std::meta::has_c_language_linkage(^^foo) == true);
void moo();
static_assert(std::meta::has_c_language_linkage(^^moo) == false);
template<typename T>
T boo();
static_assert(std::meta::has_c_language_linkage(^^boo) == false);
int main() {}
このコードを実行する
| (C++26)反映されたエンティティが |