digitalmars.D.learn - How to check whether a struct is templated?
- Andre Pany (11/13) Jun 13 2017 Hi,
- Balagopal Komarath (18/18) Jun 13 2017 Are you looking for something like this?
- =?UTF-8?Q?Ali_=c3=87ehreli?= (4/5) Jun 13 2017 You're close. :)
- Andre Pany (4/9) Jun 13 2017 Thanks :)
Hi, I loop through a structure during compile time and want to check whether a field of the structure is of type Nullable. Therefore I use the TemplateOf traits which works for Nullable fields but raises an error for fields which are structures and not templated. static if(is(T == struct) && __traits(isSame, TemplateOf!T, Nullable)){}I can not find a traits "isTemplateOf". Is there are workaround? Kind regards Andrétemplate std.traits.TemplateOf does not match any template declaration
Jun 13 2017
Are you looking for something like this? import std.typecons; import std.traits; alias yes = Nullable!int; struct no {} template isNullable(T : Nullable!X, X) { enum isNullable = true; } template isNullable(T) { enum isNullable = false; } void main() { static assert(isNullable!yes); static assert(!isNullable!no); }
Jun 13 2017
On 06/13/2017 02:00 AM, Andre Pany wrote:I can not find a traits "isTemplateOf".You're close. :) https://dlang.org/phobos/std_traits.html#isInstanceOf Ali
Jun 13 2017
On Tuesday, 13 June 2017 at 09:18:47 UTC, Ali Çehreli wrote:On 06/13/2017 02:00 AM, Andre Pany wrote:Thanks :) Kind regards AndréI can not find a traits "isTemplateOf".You're close. :) https://dlang.org/phobos/std_traits.html#isInstanceOf Ali
Jun 13 2017