Mercurial > projects > ldc
diff tests/mini/staticarrays.d @ 341:1bb99290e03a trunk
[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author | lindquist |
---|---|
date | Sun, 13 Jul 2008 02:51:19 +0200 |
parents | test/staticarrays.d@385a18242485 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/mini/staticarrays.d Sun Jul 13 02:51:19 2008 +0200 @@ -0,0 +1,78 @@ +extern(C) int printf(char*, ...); + +void numbers() +{ + bool[8] bools; + char[8] chars; + byte[8] bytes; + short[8] shorts; + int[8] ints; + long[8] longs; + float[8] floats; + double[8] doubles; + real[8] reals; + { + bools[7] = true; + floats[7] = 3.14159265; + { + printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]); + printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]); + } + } +} + +struct S +{ + int i = 42; + void print() + { + printf("S.i = %d\n", i); + } +} + +class C +{ + int i; + this() + { + i = 3; + } + void print() + { + printf("C.i = %d\n", i); + } +} + +void refs() +{ + void*[5] voids; + S*[5] structs; + C[5] classes; + + { + voids[0] = cast(void*)0xA; + printf("void* = %p\n", voids[0]); + } + { + structs[0] = new S; + structs[0].print(); + delete structs[0]; + } + { + classes[0] = new C; + classes[0].print(); + delete classes[0]; + } +} + +void vals() +{ + S[5] structs; +} + +void main() +{ + numbers(); + refs(); + vals(); +}