halide_handle_cplusplus_type#
-
struct halide_handle_cplusplus_type#
A structure to represent the fully scoped name of a C++ composite type for use in generating function signatures that use that type.
This is intended to be a constexpr usable type.
Although this is in the global namespace, it should be considered “Halide Internal” and subject to change; code outside Halide should avoid referencing it.
Public Types
-
enum Modifier#
One set of modifiers on a type.
The const/volatile/restrict properties are “inside” the pointer property.
Values:
-
enumerator Const#
Bitmask flag for “const”.
-
enumerator Volatile#
Bitmask flag for “volatile”.
-
enumerator Restrict#
Bitmask flag for “restrict”.
-
enumerator Pointer#
Bitmask flag for a pointer “*”.
-
enumerator FunctionTypedef#
Bitmask flag for a function typedef; when this is set, Pointer should also always be set.
-
enumerator Const#
-
enum ReferenceType#
References are separate because they only occur at the outermost level.
No modifiers are needed for references as they are not allowed to apply to the reference itself. (This isn’t true for restrict, but that is a C++ extension anyway.) If modifiers are needed, the last entry in the above array would be the modifiers for the reference.
Values:
-
enumerator NotReference#
-
enumerator LValueReference#
-
enumerator RValueReference#
-
enumerator NotReference#
Public Members
-
std::vector<uint8_t> cpp_type_modifiers#
Qualifiers and indirections on type. 0 is innermost.
-
enum Modifier#