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
|
#ifndef INCLUDED_XERR_IH_
#define INCLUDED_XERR_IH_
// define X to activate the xerr/xerr2 macros:
// xerr(insertion)
// inserts the '<<' concatenated elements into std::cerr
// preceded by the name of the source file, and ended by '\n'
// xerr2(insertion, code)
// performs the insertion if X is defined, and (unconditionally)
// executes the statement(s) in `code'. `code' must be valid
// C(++) code.
//
#ifdef XERR
#include <iostream>
#define xerr(insertion) std::cerr << XERR "/" __FILE__ ": " << \
insertion << '\n'
#define xerr2(insertion, code) \
{ std::cerr << XERR "/" __FILE__ ": " << insertion << \
'\n'; code; }
#else
#define xerr(insertion)
#define xerr2(insertion, code) code
#endif
#endif
|