useo: > I just have a problem with my variables. > > For example... my class/template just looks like: > > class Example(T) if (is(T == delegate) || is(T == function)) > { > T callback; > > void setCallback(T cb) { > callback = cb; > } > > } > > This means that I need variables like Example!(void function()) > myVariable. But is there any possibility to use variables like > Example myVariable?
D is not the SML language, templates are just placeholders. If you don't instantiate a template, you have only a symbol. Example is only assignable to an alias (and in past, to a typedef): alias Example Foo; > The template declaration only defines the type of > a callback and perhaps one method-declaration nothing else. I already > tried Example!(void*) because delegates and functions are void > pointers but I always get an error. I hope there is any way to do > this. I don't yet understand what you are trying to do. Other notes: - What if your T is a functor (a callable class/struct/union instance that defined opCall)? - sizeof of a function pointer is 1 CPU word, while a delegate is 2 CPU words (and a delegate clojure has stuff on the heap too, sometimes). Bye, bearophile