Scarab  v2.1.0
Project 8 C++ Utility Library
macros.hh
Go to the documentation of this file.
1 /*
2  * macros.hh
3  *
4  * Created on: May 25, 2017
5  * Author: obla999
6  */
7 
8 #ifndef SCARAB_UTILITY_MACROS_HH_
9 #define SCARAB_UTILITY_MACROS_HH_
10 
11 #define PASTE2( x, y ) x##y
12 #define PASTE( x, y ) PASTE2( x, y )
13 
14 #define STRINGIFY(x) #x
15 #define TOSTRING(x) STRINGIFY(x)
16 #define __FILE_LINE__ __FILE__ "(" TOSTRING(__LINE__) ")"
17 #define __FILENAME_LINE__ (strrchr(__FILE__, '/') ? strrchr(__FILE_LINE__, '/') + 1 : __FILE_LINE__)
18 
19 #if !defined(__FUNC__)
20 #if defined(_MSC_VER)
21 #define __FUNC__ __FUNCSIG__
22 #elif defined(__GNUC__)
23 #define __FUNC__ __PRETTY_FUNCTION__
24 #else
25 #define __FUNC__ ""
26 #endif
27 #endif
28 
29 #endif /* SCARAB_UTILITY_MACROS_HH_ */