make dbg() variant work under gcc and clang
This commit is contained in:
parent
cca34a1ad7
commit
33d31af61d
|
@ -198,16 +198,31 @@ template <typename T> T &&identity(T &&t) { return std::forward<T>(t); }
|
||||||
#define dbg(...) dbg_macro::identity(__VA_ARGS__)
|
#define dbg(...) dbg_macro::identity(__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
|
||||||
#define SOI_ARG16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
|
#define SOI_ARG16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, ...) _15
|
||||||
#define SOI_IS_NONEMPTY(...) SOI_ARG16(1, ##__VA_ARGS__, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
#define SOI_IS_NONEMPTY(...) SOI_ARG16(1, ##__VA_ARGS__, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||||
|
|
||||||
#define SOI_DBG_IMPL_0() \
|
#define SOI_DBG_IMPL_0() \
|
||||||
soi::detail::dbg_print_status(__FILE__, __LINE__, __func__)
|
soi::detail::dbg_print_status(__FILE__, __LINE__, __func__)
|
||||||
|
|
||||||
#define SOI_DBG_IMPL_1(...) \
|
#define SOI_DBG_IMPL_1(...) \
|
||||||
soi::detail::dbg_print((__VA_ARGS__), \
|
soi::detail::dbg_print((__VA_ARGS__), \
|
||||||
soi::detail::sanitized_type_name<decltype(__VA_ARGS__)>(), __FILE__, \
|
soi::detail::sanitized_type_name<decltype(__VA_ARGS__)>(), __FILE__, \
|
||||||
__LINE__, __func__, #__VA_ARGS__)
|
__LINE__, __func__, #__VA_ARGS__)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define SOI_IS_NONEMPTY(...) __VA_OPT__(HAS)
|
||||||
|
|
||||||
|
#define SOI_DBG_IMPL_() \
|
||||||
|
soi::detail::dbg_print_status(__FILE__, __LINE__, __func__)
|
||||||
|
#define SOI_DBG_IMPL_HAS(...) \
|
||||||
|
soi::detail::dbg_print((__VA_ARGS__), \
|
||||||
|
soi::detail::sanitized_type_name<decltype(__VA_ARGS__)>(), __FILE__, \
|
||||||
|
__LINE__, __func__, #__VA_ARGS__)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SOI_CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__)
|
#define SOI_CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__)
|
||||||
#define SOI_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
|
#define SOI_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
|
||||||
|
|
Loading…
Reference in New Issue