shared and getParameterStorageClasses bug?
Steven Schveighoffer
schveiguy at gmail.com
Sun Aug 23 14:38:34 UTC 2020
On 8/23/20 10:21 AM, Paul Backus wrote:
> On Sunday, 23 August 2020 at 14:11:21 UTC, Jean-Louis Leroy wrote:
>>
>> OK since the `shared` has migrated to the type, isSharedParameter can
>> be written like this:
>>
>> enum isSharedParameter(alias fun, uint param) =
>> is(Parameters!fun[param] == SharedOf!(Parameters!fun[param]));
>
> An even simpler way is to use the pattern-matching feature of `is(...)`:
>
> enum isSharedParameter(alias fun, size_t param) =
> is(Parameters!fun[param] == shared(T), T);
>
> You can read this as, "there exists some T such that
> Parameters!fun[param] is shared(T)".
is(Parameters!fun[param] == shared);
This works for all type constructors.
I think there's no way to get this as a nice string list though like a
__traits might do (though it could be done).
-Steve
More information about the Digitalmars-d
mailing list