import core.stdc.stdio : printf;
extern (C++) abstract class A {
void sayHello();
}
extern (C++) class B : A {
override void sayHello() {
printf("hello\n");
}
}
extern (C) void main() {
//scope b = new B;
B b;
assert(b);
b.sayHello();
}
Above fails because b is null. But why doesn't the compiler say
so? It seems like a very basic safety check.