Use __is_trivially_copyable if possible.
This commit is contained in:
parent
694378f9ab
commit
a08b1f9107
@ -7,6 +7,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "td/utils/int_types.h"
|
||||
#include "td/utils/port/platform.h"
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
@ -31,9 +32,13 @@ constexpr size_t member_function_argument_count() {
|
||||
return member_function_class<FunctionT>::argument_count();
|
||||
}
|
||||
|
||||
// no std::is_trivially_copyable in libstdc++ before 5.0
|
||||
// there is no std::is_trivially_copyable in libstdc++ before 5.0
|
||||
#if __GLIBCXX__
|
||||
#if TD_CLANG || (TD_GCC && __GNUC__ >= 5) // but clang >= 3.0 and g++ >= 5.0 supports __is_trivially_copyable
|
||||
#define TD_IS_TRIVIALLY_COPYABLE(T) __is_trivially_copyable(T)
|
||||
#else
|
||||
#define TD_IS_TRIVIALLY_COPYABLE(T) __has_trivial_copy(T)
|
||||
#endif
|
||||
#else
|
||||
#define TD_IS_TRIVIALLY_COPYABLE(T) ::std::is_trivially_copyable<T>::value
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user