static if "Pointer-Type"
Thomas Kuehne
thomas-dloop at kuehne.cn
Sun Mar 5 08:05:34 PST 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Philipp Heise schrieb am 2006-03-05:
> Hi,
>
> i have the following problem in a template:
>
> class SomeClass(T) {
> T[] elements;
>
> ...
> /*code for adding and removing elements*/
> ...
>
> public int contains(T x) {
>
> /*x could be null if T is a pointer-type*/
> static if("T is a Pointer-Type") { /*<- How can i do this ???*/
> if(x is null){
> foreach(T y;elements){
> if(y is null) return true;
> }
> return false;
> }
> }
>
> ...
> /*rest of the method*/
> ...
> }
>
> ...
>
> }
# class C(T){
# private T[] elements;
#
# public int contains(T t){
# static if(is(T == class)){
# pragma(msg, "it's a class");
# }else static if(is(T == delegate) || is(T == function)){
# pragma(msg, "it's a function pointer");
# }else static if(is(T : void*)){
# pragma(msg, "it's a 'plain' pointer");
# }else{
# pragma(msg, "this isn't a pointer type");
# }
# }
# }
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFECxlp3w+/yD4P9tIRAmhUAKCj6VIj6TRqQ6k+JAm7nG+k9H35PACgnRKs
d9hij5BBjqOSB+3hpexDtRg=
=XyVC
-----END PGP SIGNATURE-----
More information about the Digitalmars-d-learn
mailing list