std::meta::has_c_language_linkage - cppreference.com
Namespaces
Variants

std::meta::has_c_language_linkage

From cppreference.com
< cpp | meta
 
 
 
Reflection library
 
Reflection types and queries
Reflection queries
Reflection layout queries
Type properties
Type property queries
 
Defined in header <meta>
consteval bool has_c_language_linkage( std::meta::info r );
(since C++26)

Determines if r represents a variable, function, or function type with "C" language linkage (extern "C"). Returns true if it does, false otherwise.

Parameters

r - a reflection value

Return value

true if what r represents has "C" language linkage, false otherwise.

Notes

If r does not represent a variable, function, or function type (e.g., if r represents a function template), the result is false.

Example

#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() {}

See also