www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Trait to identify if a type is a struct one

reply pham <home home.com> writes:
Is there a way to identify if a type is a struct, something like 
isStruct
similar to isArray.

struct X
{
}

isStruct!X == true?

Also, there are isAbstractClass & isFinalClass but want to check 
if type is a class regardless? something like isClass?

Thanks
Pham
Oct 18 2017
parent reply drug <drug2004 bk.ru> writes:
18.10.2017 18:11, pham пишет:
 Is there a way to identify if a type is a struct, something like isStruct
 similar to isArray.
 
 struct X
 {
 }
 
 isStruct!X == true?
 
 Also, there are isAbstractClass & isFinalClass but want to check if type 
 is a class regardless? something like isClass?
 
 Thanks
 Pham
 
if (is(X == struct)) { ... }
Oct 18 2017
parent reply user1234 <user1234 12.nl> writes:
On Wednesday, 18 October 2017 at 15:16:21 UTC, drug wrote:
 18.10.2017 18:11, pham пишет:
 Is there a way to identify if a type is a struct, something 
 like isStruct
 similar to isArray.
 
 struct X
 {
 }
 
 isStruct!X == true?
 
 Also, there are isAbstractClass & isFinalClass but want to 
 check if type is a class regardless? something like isClass?
 
 Thanks
 Pham
 
if (is(X == struct)) { ... }
static if (is(X == struct)) { ... } ptherwise lots of strnage errors ;)
Oct 18 2017
parent =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 10/18/2017 10:05 AM, user1234 wrote:
 On Wednesday, 18 October 2017 at 15:16:21 UTC, drug wrote:
 18.10.2017 18:11, pham пишет:
 Is there a way to identify if a type is a struct, something like 
 isStruct
 similar to isArray.

 struct X
 {
 }

 isStruct!X == true?

 Also, there are isAbstractClass & isFinalClass but want to check if 
 type is a class regardless? something like isClass?

 Thanks
 Pham
if (is(X == struct)) {    ... }
static if (is(X == struct)) {    ... } ptherwise lots of strnage errors ;)
Playing the devil's advocate, I think drug meant it as a function template constraint. :o) void foo(X)(X x) if (is(X == struct)) { // ... } Ali
Oct 18 2017