// Common tools for the exception tests. // Echo when a destructor is run and an area/block is left. #include struct loud_exit { const char * area; }; inline void ?{}(loud_exit & this, const char * area) { this.area = area; } inline void ^?{}(loud_exit & this) { sout | "Exiting: " | this.area; } struct loud_region { const char * region; }; inline void ?{}(loud_region & this, const char * region) { this.region = region; sout | "Entering: " | region; } inline void ^?{}(loud_region & this) { sout | "Exiting: " | this.region; }