Nope. Private ctors have to be called from within the same module, whether implicit or not: test.d: class Foo { private this() { } // Error: constructor main.Bar.this no match for implicit super() call in constructor } import test; class Bar : Foo { this() { } } void main() { auto bar = new Bar(); }