##// END OF EJS Templates
Updated QxOrm meson build defs...
Updated QxOrm meson build defs Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r39:cc47cd67a7b3
r52:5eaca9d9803c
Show More
cpp_utils.h
29 lines | 1.0 KiB | text/x-c | CLexer
#ifndef CPP_UTILS_H
#define CPP_UTILS_H
#include <type_traits>
template< class... >
using void_t = void;
#define HAS_METHOD(method)\
template <class T, class=void>\
struct _has_##method : std::false_type{};\
\
template <class T>\
struct _has_##method<T, void_t<std::is_member_function_pointer<decltype(&T::method)>>>\
: std::true_type{};\
\
template< class T>\
static inline constexpr bool has_##method = _has_##method<T>::value;
//taken from here https://www.fluentcpp.com/2017/10/27/function-aliases-cpp/
#define ALIAS_TEMPLATE_FUNCTION(highLevelF, lowLevelF) \
template <typename... Args> \
inline auto highLevelF(Args &&... args)->decltype(lowLevelF(std::forward<Args>(args)...)) \
{ \
return lowLevelF(std::forward<Args>(args)...); \
}
#endif // CPP_UTILS_H