fennec
Loading...
Searching...
No Matches
Intrinsics

This header contains definitions for compiler intrinsics necessary for implementing functions of the C++ stdlib.

Syntax Description

FENNEC_HAS_BUILTIN_BIT_CAST
Y FENNEC_BUILTIN_BIT_CAST(X)

An intrinsic for doing a bitwise cast without using reinterpret_cast.


FENNEC_HAS_BUILTIN_ADDRESSOF
Y FENNEC_BUILTIN_ADDRESSOF(X)

Obtains the true address of an object in circumstances where operator& is overloaded.


FENNEC_HAS_BUILTIN_IS_CONVERTIBLE
B FENNEC_BUILTIN_IS_CONVERTIBLE(X, Y)

Checks if type X can be converted to type Y.


FENNEC_HAS_BUILTIN_IS_EMPTY
B FENNEC_BUILTIN_IS_EMPTY(X)

Checks if type X stores no data.


FENNEC_HAS_BUILTIN_IS_POLYMORPHIC
B FENNEC_BUILTIN_IS_POLYMORPHIC(X)

Checks if type X is polymorphic, this is for classes only thus checks only for subtyping


FENNEC_HAS_BUILTIN_IS_FINAL
B FENNEC_BUILTIN_IS_FINAL(X)

Checks if type X is final, meaning a function or class cannot be derived from.


FENNEC_HAS_BUILTIN_IS_ABSTRACT
B FENNEC_BUILTIN_IS_ABSTRACT(X)

Opposite of FENNEC_BUILTIN_IS_FINAL, checks if abstract, meaning X has at least one pure virtual function.


FENNEC_HAS_BUILTIN_IS_STANDARD_LAYOUT
B FENNEC_BUILTIN_IS_STANDARD_LAYOUT(X)

Checks if X has a standard layout, here is full criteria for this trait


FENNEC_HAS_BUILTIN_IS_CONSTRUCTIBLE
B FENNEC_BUILTIN_IS_CONSTRUCTIBLE(X, ...)

Checks if type X is constructible with args ..., such that X::X(...) exists.