Namespaces
Variants

std::meta::has_c_language_linkage

От ru.cppreference.net
< cpp | meta
 
 
 
Библиотека рефлексии
 
Reflection types and queries
Reflection queries
Reflection layout queries
Type properties
Type property queries
 
Определён в заголовке <meta>
consteval bool has_c_language_linkage( std::meta::info r );
(начиная с C++26)

Определяет, представляет ли r переменную, функцию или тип функции с "C" языковым связыванием (extern "C"). Возвращает true, если да, false иначе.

Параметры

r - значение рефлексии

Возвращаемое значение

true, если то, что r представляет, имеет "C" языковое связывание, false иначе.

Примечания

Если r не представляет переменную, функцию или тип функции (например, если r представляет шаблон функции), результат равен 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() {}

См. также

проверяет, имеет ли отражаемая сущность связывание
(функция)