/** \file misc/contract.cc ** \brief Implementation for contract.hh */ #include #include #include Contract::Contract(const char* condType, const char* condText, const char* fileName, int fileLine) : condType(condType) , condText(condText) , fileName(fileName) , fileLine(fileLine) {} Contract::~Contract() { const std::string message = std::string(condType) + ' ' + condText + " was false"; __Terminate(fileName, fileLine, message.c_str()); } void __Terminate(const char* fileName, int fileLine, const char* reason) { std::cerr << fileName << ":" << fileLine << ": Program abortion (" << reason << ")\n"; abort(); }