blob: 3dc70be589e5fdacf93a820e97a83792079105e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/** \file misc/contract.cc
** \brief Implementation for contract.hh
*/
#include <cstdlib>
#include <iostream>
#include <misc/contract.hh>
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();
}
|