extractParameterStorageClassFlags

Convert the result of __traits(getParameterStorageClasses) to ParameterStorageClass enums.

template extractParameterStorageClassFlags (
Attribs...
) {
enum ParameterStorageClass extractParameterStorageClassFlags;
}

Parameters

Attribs

The return value of __traits(getParameterStorageClasses)

Return Value

The bitwise OR of the equivalent ParameterStorageClass enums.

Examples

1 static void func(ref int ctx, out real result);
2 
3 enum param1 = extractParameterStorageClassFlags!(
4     __traits(getParameterStorageClasses, func, 0)
5 );
6 static assert(param1 == ParameterStorageClass.ref_);
7 
8 enum param2 = extractParameterStorageClassFlags!(
9     __traits(getParameterStorageClasses, func, 1)
10 );
11 static assert(param2 == ParameterStorageClass.out_);
12 
13 enum param3 = extractParameterStorageClassFlags!(
14     __traits(getParameterStorageClasses, func, 0),
15     __traits(getParameterStorageClasses, func, 1)
16 );
17 static assert(param3 == (ParameterStorageClass.ref_ | ParameterStorageClass.out_));

Meta

Suggestion Box / Bug Report