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)){}
template std.traits.TemplateOf does not match any template
declaration
I can not find a traits "isTemplateOf". Is there are workaround?
Kind regards
André
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









Balagopal Komarath <baluks gmail.com> 