diff --git a/src/core/stdcpp/exception.d b/src/core/stdcpp/exception.d index 7e3f7ade4a..b855b20f0e 100644 --- a/src/core/stdcpp/exception.d +++ b/src/core/stdcpp/exception.d @@ -15,8 +15,6 @@ module core.stdcpp.exception; import core.stdcpp.xutility : __cplusplus, CppStdRevision; import core.attribute : weak; -version (CppRuntime_DigitalMars) - version = GenericBaseException; version (CppRuntime_Gcc) version = GenericBaseException; version (CppRuntime_Clang) @@ -80,6 +78,24 @@ version (GenericBaseException) this(const(char)*, int = 1) nothrow { this(); } // compat with MS derived classes } } +else version (CppRuntime_DigitalMars) +{ + /// + class exception + { + @nogc: + /// + this() nothrow {} + //virtual ~this(); + void dtor() { } // reserve slot in vtbl[] + + /// + const(char)* what() const nothrow; + + protected: + this(const(char)*, int = 1) nothrow { this(); } // compat with MS derived classes + } +} else version (CppRuntime_Microsoft) { ///