2014-12-30 01:22:09 -05:00
|
|
|
import io:*;
|
|
|
|
|
import trivial_container:*;
|
2014-05-20 22:21:07 -04:00
|
|
|
|
2015-05-16 12:05:23 -04:00
|
|
|
obj TemplateTest<T> {
|
2015-05-09 06:24:56 -04:00
|
|
|
var a: int;
|
|
|
|
|
var b: T;
|
|
|
|
|
var c: trivialContainer<T>;
|
|
|
|
|
fun print(): void {
|
2014-05-20 22:21:07 -04:00
|
|
|
print("a: ");
|
|
|
|
|
print(a);
|
|
|
|
|
print("\n");
|
|
|
|
|
print("b: ");
|
|
|
|
|
print(b);
|
|
|
|
|
print("\n");
|
|
|
|
|
c.print();
|
|
|
|
|
print("\n");
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2015-05-16 12:05:23 -04:00
|
|
|
def MyInt int;
|
2014-05-20 22:21:07 -04:00
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
var c: MyInt;
|
2014-05-20 22:21:07 -04:00
|
|
|
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun addAndPrint<T>(a: T, b: T): T {
|
2014-05-20 22:21:07 -04:00
|
|
|
print(a+b);
|
|
|
|
|
return a+b;
|
|
|
|
|
}
|
|
|
|
|
|
2015-05-09 06:24:56 -04:00
|
|
|
fun main(): int {
|
|
|
|
|
var test: TemplateTest<int>;
|
2015-07-04 17:02:51 -04:00
|
|
|
var test2: TemplateTest<*char>;
|
2014-05-20 22:21:07 -04:00
|
|
|
test.a = 5;
|
|
|
|
|
test.b = 7;
|
|
|
|
|
test.c.data = 1337;
|
|
|
|
|
test2.a = 9;
|
|
|
|
|
test2.b = "Hello Templates!";
|
|
|
|
|
test2.c.data = "Woooo nesting!";
|
|
|
|
|
|
|
|
|
|
test.print();
|
|
|
|
|
test2.print();
|
|
|
|
|
|
2015-07-04 17:02:51 -04:00
|
|
|
var testImport: trivialContainer<*char>;
|
2014-05-20 22:21:07 -04:00
|
|
|
testImport.data = "From another file! Whoh!";
|
|
|
|
|
testImport.print();
|
|
|
|
|
print("\n");
|
|
|
|
|
|
|
|
|
|
print(addAndPrint<int>(7,12));
|
|
|
|
|
print("\n");
|
|
|
|
|
|
|
|
|
|
return 0;
|
2014-08-01 00:45:48 -07:00
|
|
|
}
|