Error: Declaration is not yet implemented in CTFE
Daniel Kozak via Digitalmars-d
digitalmars-d at puremagic.com
Fri Nov 28 11:24:21 PST 2014
Dne Fri, 28 Nov 2014 20:01:41 +0100 bitwise via Digitalmars-d
<digitalmars-d at puremagic.com> napsal(a):
> The docs for template mixins do show mixins inside functions, so is this
> a bug, or is there something else I'm doing wrong?
>
> //**************************
> module main;
> import std.traits;
>
> class ModInfo {
>
> }
>
> mixin template moduleInfo(alias MODULE) {
> static const(ModInfo) __module_info = new ModInfo;
> }
>
> const(ModInfo) getModuleInfo(alias mod)() {
> static if(__traits(hasMember, mod, "__module_info")) {
> return __traits(getMember, mod, "__module_info");
> } else {
> mixin moduleInfo!mod; // ERROR [1]
> return __module_info;
> }
> }
>
> void main() {
> static const(ModInfo) info = getModuleInfo!(main);
> }
> //**************************
>
> [1] main.d(17,3): Error: Declaration mixin moduleInfo!(main);
> is not yet implemented in CTFE
> main.d(23,31): called from here: getModuleInfo()
module main;
immutable class ModInfo {
}
static moduleInfo(alias MODULE)() {
return new ModInfo();
}
static getModuleInfo(alias mod)() {
static if(__traits(hasMember, mod, "__module_info")) {
return __traits(getMember, mod, "__module_info");
} else {
return moduleInfo!mod;
}
}
void main() {
immutable info = getModuleInfo!(main);
}
More information about the Digitalmars-d
mailing list