File: Error.h

package info (click to toggle)
edb-debugger 1.3.0-2.2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,124 kB
  • sloc: cpp: 46,241; xml: 4,998; ansic: 3,088; sh: 52; asm: 33; makefile: 5
file content (29 lines) | stat: -rw-r--r-- 822 bytes parent folder | download | duplicates (4)
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

#ifndef UTIL_ERROR_H_2020227_
#define UTIL_ERROR_H_2020227_

#include <QString>
#include <iostream>

namespace util {

template <class Stream>
void print(Stream &str) {
	str << "\n";
}

template <class Stream, class Arg0, class... Args>
void print(Stream &str, Arg0 &&arg0, Args &&... args) {
	str << std::forward<Arg0>(arg0);
	print(str, std::forward<Args>(args)...);
}

}

#define EDB_PRINT_AND_DIE(...)                                                                              \
	do {                                                                                                    \
		util::print(std::cerr, __FILE__, ":", __LINE__, ": ", Q_FUNC_INFO, ": Fatal error: ", __VA_ARGS__); \
		std::abort();                                                                                       \
	} while (0)

#endif