import std.stdio;
@safe:extern(D){
abstract classDA{charfoo();}classDB: DA {
override charfoo(){return'B';}}classDC: DA {
override charfoo(){return'C';}}}extern(C++){
abstract classCA{charfoo();}classCB: CA {
override charfoo(){return'b';}}classCC: CA {
override charfoo(){return'c';}}}voidmain(){
DB db =new DB;
DA da = db;
DC dc =cast(DC) da;writeln((dc is null)?"D cast was dynamic.":"D cast was static.");
CB cb =new CB;
CA ca = cb;
CC cc =cast(CC) ca;writeln((cc is null)?"C++ cast was dynamic.":"C++ cast was static.");return;}