isCallable is not an expression
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Sep 24 10:59:04 PDT 2014
On 09/24/2014 01:11 AM, andre wrote:
> template MyTemplate()
> {
> import std.traits : isSomeFunction, functionAttributes,
> FunctionAttribute, ReturnType;
>
> string[] getPropertyNames()
1) You need a "this template parameter":
string[] getPropertyNames(this MyType)()
2) Now, replace all typeof(this) expressions with MyType below.
> /*string[] getPropertyDuplicate()
3) Same here:
string[] getPropertyDuplicate(this MyType)()
And it works! :)
class A {
mixin MyTemplate;
@property int zzz()
{
return 42;
}
}
void main() {
auto a = new A();
import std.string;
assert(a.getPropertyNames() == [ "zzz" ]);
assert(a.getPropertyDuplicate() == [ "zzz" ]);
}
Ali
More information about the Digitalmars-d-learn
mailing list