39#ifndef BLOCXX_FUNC_NAME_PRINTER_HPP
40#define BLOCXX_FUNC_NAME_PRINTER_HPP
41#include "blocxx/BLOCXX_config.h"
50#ifdef BLOCXX_PRINT_FUNC_DEBUG
51#define PRINT_FUNC_NAME BLOCXX_FuncNamePrinter fnp##__LINE__ (__PRETTY_FUNCTION__)
53#define PRINT_FUNC_NAME_ARGS1(a) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a)
54#define PRINT_FUNC_NAME_ARGS2(a, b) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b)
55#define PRINT_FUNC_NAME_ARGS3(a, b, c) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c)
56#define PRINT_FUNC_NAME_ARGS4(a, b, c, d) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d)
57#define PRINT_FUNC_NAME_ARGS5(a, b, c, d, e) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e)
58#define PRINT_FUNC_NAME_ARGS6(a, b, c, d, e, f) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e, f)
59#define PRINT_FUNC_NAME_ARGS7(a, b, c, d, e, f, g) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e, f, g)
60#define PRINT_FUNC_NAME_ARGS8(a, b, c, d, e, f, g, h) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e, f, g, h)
61#define PRINT_FUNC_NAME_ARGS9(a, b, c, d, e, f, g, h, i) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e, f, g, h, i)
62#define PRINT_FUNC_NAME_ARGS10(a, b, c, d, e, f, g, h, i, j) BLOCXX_FuncNamePrinter fnp##__LINE__ ( __PRETTY_FUNCTION__ , a, b, c, d, e, f, g, h, i, j)
64#define PRINT_FUNC_NAME_ARGS1(a)
65#define PRINT_FUNC_NAME_ARGS2(a, b)
66#define PRINT_FUNC_NAME_ARGS3(a, b, c)
67#define PRINT_FUNC_NAME_ARGS4(a, b, c, d)
68#define PRINT_FUNC_NAME_ARGS5(a, b, c, d, e)
69#define PRINT_FUNC_NAME_ARGS6(a, b, c, d, e, f)
70#define PRINT_FUNC_NAME_ARGS7(a, b, c, d, e, f, g)
71#define PRINT_FUNC_NAME_ARGS8(a, b, c, d, e, f, g, h)
72#define PRINT_FUNC_NAME_ARGS9(a, b, c, d, e, f, g, h, i)
73#define PRINT_FUNC_NAME_ARGS10(a, b, c, d, e, f, g, h, i, j)
74#define PRINT_FUNC_NAME
88 fprintf(stderr,
"%d Entering: %s\n", getpid(), funcName);
93 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
94 Format(
"(%1)", a).c_str());
96 template<
typename A,
typename B>
99 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
100 Format(
"(%1, %2)", a, b).c_str());
102 template<
typename A,
typename B,
typename C>
105 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
106 Format(
"(%1, %2, %3)", a, b, c).c_str());
108 template<
typename A,
typename B,
typename C,
typename D>
111 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
112 Format(
"(%1, %2, %3, %4)", a, b, c, d).c_str());
114 template<
typename A,
typename B,
typename C,
typename D,
typename E>
117 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
118 Format(
"(%1, %2, %3, %4, %5)", a, b, c, d, e).c_str());
120 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F>
123 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
124 Format(
"(%1, %2, %3, %4, %5, %6)", a, b, c, d, e, f).c_str());
126 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
130 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
131 Format(
"(%1, %2, %3, %4, %5, %6, %7)", a, b, c, d, e, f, g).c_str());
133 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
134 typename G,
typename H>
135 FuncNamePrinter(
const char* funcName,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h) :
m_funcName(funcName)
137 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
138 Format(
"(%1, %2, %3, %4, %5, %6, %7, %8)", a, b, c, d, e, f, g, h).c_str());
140 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
141 typename G,
typename H,
typename I>
142 FuncNamePrinter(
const char* funcName,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h,
const I&
i) :
m_funcName(funcName)
144 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
145 Format(
"(%1, %2, %3, %4, %5, %6, %7, %8, %9)", a, b, c, d, e, f, g, h,
i).c_str());
147 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
148 typename G,
typename H,
typename I,
typename J>
149 FuncNamePrinter(
const char* funcName,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h,
const I&
i,
const J& j) :
m_funcName(funcName)
151 fprintf(stderr,
"%d Entering: %s\n\t%s\n", getpid(), funcName,
152 Format(
"(%1, %2, %3, %4, %5, %6, %7, %8, %9)", a, b, c, d, e, f, g, h,
Format(
"%1, %2",
i, j)).c_str());
155 { fprintf(stderr,
"%d Leaving: %s\n", getpid(),
m_funcName); }
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e, const F &f, const G &g, const H &h)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e, const F &f)
FuncNamePrinter(const char *funcName, const A &a)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c)
FuncNamePrinter(const char *funcName)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e, const F &f, const G &g, const H &h, const I &i, const J &j)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e, const F &f, const G &g)
FuncNamePrinter(const char *funcName, const A &a, const B &b, const C &c, const D &d, const E &e, const F &f, const G &g, const H &h, const I &i)
FuncNamePrinter(const char *funcName, const A &a, const B &b)