annotate lphobos/std/traits.d @ 20:42bf2eb2973b trunk

[svn r24] * Added a simple std.traits by downs
author lindquist
date Thu, 04 Oct 2007 04:28:30 +0200
parents
children 61615fa85940
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
1 module std.traits;
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
2 struct TypeHolder(S, T...) {
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
3 S _ReturnType;
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
4 T _ParameterTypeTuple;
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
5 }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
6 TypeHolder!(S, T) *IFTI_gen(S, T...)(S delegate(T) dg) { return null; }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
7 TypeHolder!(S, T) *IFTI_gen(S, T...)(S function(T) dg) { return null; }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
8 template ParameterTypeTuple(T) {
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
9 alias typeof(IFTI_gen(T.init)._ParameterTypeTuple) ParameterTypeTuple;
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
10 }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
11 template ReturnType(T) {
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
12 alias typeof(IFTI_gen(T.init)._ReturnType) ReturnType;
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
13 }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
14 template isArray(T) { const bool isArray=false; }
42bf2eb2973b [svn r24] * Added a simple std.traits by downs
lindquist
parents:
diff changeset
15 template isArray(T: T[]) { const bool isArray=true; }