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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
//
// Common parts of utilities written in C++
// for providing uniform user experience
//
#include <iostream>
#include <string>
#if defined(WIN32) || defined(_WIN32)
#define DIR_SEPARATOR "\\"
#else
#define DIR_SEPARATOR "/"
#endif
const std::string BANNER_LINE = "//-------------------------------------------------------------------------------------------";
void ERROR()
{
exit(-1);
}
void ERROR(const std::string &message)
{
std::cout << "\n" << "ERROR: " << message << "\n\n";
exit(-1);
}
void printBannerLineTop()
{
std::cout << "\n\n\n" << BANNER_LINE << "\n";
}
void printBannerLineBottom()
{
std::cout << BANNER_LINE << "\n\n";
}
class DualStream
{
public:
DualStream(std::ostream& str1, std::ostream& str2) : str1(str1), str2(str2) {}
template<class T> DualStream &operator<<(const T& x)
{
str1 << x;
str2 << x;
return *this;
}
private:
std::ostream& str1;
std::ostream& str2;
};
|