It is still a bit rough around some edges, particularly with regard to multi-threading and operator overloading, and there are some documentation bits missing, but it should be fine for basic use. The test-suite should build and run fine with the current versions of DMD, LDC and Tango (at least) on Linux x86_64 and Mac OS X 10.6. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12299 626c5289-ae23-0410-ae9c-e8d60b6d4f22
25 lines
667 B
D
25 lines
667 B
D
module default_constructor_runme;
|
|
|
|
import default_constructor.FFF;
|
|
import default_constructor.G;
|
|
|
|
void main() {
|
|
// D2 does not support something akin to D1/Tango dispose() for deterministic
|
|
// destruction yet.
|
|
|
|
// enforceThrows((){ scope g = new G(); }, "Protected destructor exception should have been thrown");
|
|
// enforceThrows((){ scope f = new FFF(); }, "Private destructor exception should have been thrown");
|
|
}
|
|
|
|
private void enforceThrows(void delegate() dg, string errorMessage) {
|
|
bool hasThrown;
|
|
try {
|
|
dg();
|
|
} catch (Exception) {
|
|
hasThrown = true;
|
|
} finally {
|
|
if (!hasThrown) {
|
|
throw new Exception(errorMessage);
|
|
}
|
|
}
|
|
}
|