Crombie Tools
src/include/crombie/Debug.h
Go to the documentation of this file.
1 #ifndef CROMBIE_DEBUG_H
2 #define CROMBIE_DEBUG_H
3 
4 #include <cstdlib>
5 #include <iostream>
6 
7 namespace crombie {
8  namespace Debug {
9 
10  namespace {
11  static bool _printed = false;
12 
13  template<typename T> void OneMessage (T message) {
14  if (not _printed)
15  std::cout << "[";
16  std::cout << message;
17  if (not _printed)
18  std::cout << "]\n";
19  std::cout << " ";
20  _printed = true;
21  }
22 
23  void Debug() {
24  _printed = false;
25  std::cout << std::endl;
26  }
27  }
28 
29  const bool debug = getenv("debug");
30 
31  template<typename T, typename... V> void Debug(T message, V... more) {
32  if (debug) {
33  OneMessage(message);
34  Debug(more...);
35  }
36  }
37 
38  }
39 }
40 
41 #endif