On 2019-05-07 09:06:03 +0000, Kagamin said:
struct myFramework {
myFrameworkAccessor myFWApp;
}
interface myFrameworkApp {
void init();
}
main(){
myFramework mf = new myFramework;
mf.myFWApp.init(); // this bombs because myFWApp is NULL
}
struct myFrameworkAccessor {
myFrameworkApp instance()
{
if(_instance==null)_instance=new myAppCode();
return _instance;
}
myFrameworkApp _instance;
alias instance this;
}
class myAppCode : myFrameworkApp {
void init() {...}
}
I had to make some changes:
1. struct myFramework => class myFramework
2. mf.myFWApp.init() => change into two different steps. Otherwise I
get an: Error: no property opCall for type
app_framework.myFrameworkApp, did you mean new myFrameworkApp?
import std.experimental.all;
struct myFrameworkAccessor {
myFrameworkApp instance()
{
if(_instance is null) _instance = new myAppCode();
return _instance;
}
myFrameworkApp _instance;
alias instance this;
}
class myFramework {
myFrameworkAccessor myFWApp;
}
interface myFrameworkApp {
void init();
}
class myAppCode : myFrameworkApp {
void init() {}
}
void main(){
myFramework mf = new myFramework;
myFrameworkApp ma = mf.myFWApp;
ma.init();
}
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster