On 5/23/2011 2:17 AM, Simen Kjaeraas wrote:
On Sat, 21 May 2011 11:40:22 +0200, Matthew Ong <on...@yahoo.com> wrote:
Using your code I have this error:
src\Sample.d(16): Error: undefined identifier btype, did you mean
template AType(string name,U,alias V)?
src\Sample.d(16): Error: mixin AType!("ClassB",string,_error_) does
not match template declaration AType(string name,U,alias V)
Could you please ensure it is compilable code and so that I can test
the template shown by you.
Sorry about that.
string ATypeGenerator( string name ) {
return "class " ~ name ~ " : ClassC {
private:
U value;
public:
this(){}
void print(){}
mixin V;
}";
}
mixin template AType( string name, U, alias V ) {
mixin( ATypeGenerator( name ) );
}
class ClassC {}
mixin template btype() {
void someFunction() {}; // Content of a class.
}
mixin AType!("ClassB", string, btype);
void main() {
ClassC r = new ClassB();
}
Thanks simen. I have solve that issue.
Someone also pointed out:
template mydef(string name){
}
mixin(mydef!("abc"));
The above are NOT shown up left hand side of that when we click on
Language Reference
http://www.digitalmars.com/d/2.0/lex.html
And also here.
http://www.digitalmars.com/d/2.0/comparison.html
not the same as:
mixin template mydeff(T){
...
}
mixin mydeff!(string);
Some centralized documentation is needed for D.
--
Matthew Ong
email: on...@yahoo.com