summaryrefslogtreecommitdiffstats
path: root/include/godot_cpp
diff options
context:
space:
mode:
authorGeorge Marques <george@gmarqu.es>2023-01-28 13:59:34 -0300
committerGeorge Marques <george@gmarqu.es>2023-01-28 13:59:34 -0300
commit64be8c15070b8854087706ebca371c7f49fb53af (patch)
tree1dc77a7cc1fef625d579881966cab4d377e49a4c /include/godot_cpp
parenta8d848506074b1bb7eae319b06e9de60395eee1f (diff)
downloadredot-cpp-64be8c15070b8854087706ebca371c7f49fb53af.tar.gz
Use std type traits instead of intrinsics
This removes warnings and mimics what has been done in Godot itself.
Diffstat (limited to 'include/godot_cpp')
-rw-r--r--include/godot_cpp/core/memory.hpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/godot_cpp/core/memory.hpp b/include/godot_cpp/core/memory.hpp
index 4a5a16b..d17e05e 100644
--- a/include/godot_cpp/core/memory.hpp
+++ b/include/godot_cpp/core/memory.hpp
@@ -108,7 +108,7 @@ public:
template <class T>
void memdelete(T *p_class, typename std::enable_if<!std::is_base_of_v<godot::Wrapped, T>>::type * = nullptr) {
- if (!__has_trivial_destructor(T)) {
+ if (!std::is_trivially_destructible<T>::value) {
p_class->~T();
}
@@ -122,7 +122,7 @@ void memdelete(T *p_class) {
template <class T, class A>
void memdelete_allocator(T *p_class) {
- if (!__has_trivial_destructor(T)) {
+ if (!std::is_trivially_destructible<T>::value) {
p_class->~T();
}
@@ -145,7 +145,7 @@ T *memnew_arr_template(size_t p_elements, const char *p_descr = "") {
ERR_FAIL_COND_V(!mem, failptr);
*(mem - 1) = p_elements;
- if (!__has_trivial_constructor(T)) {
+ if (!std::is_trivially_destructible<T>::value) {
T *elems = (T *)mem;
/* call operator new */
@@ -161,7 +161,7 @@ template <typename T>
void memdelete_arr(T *p_class) {
uint64_t *ptr = (uint64_t *)p_class;
- if (!__has_trivial_destructor(T)) {
+ if (!std::is_trivially_destructible<T>::value) {
uint64_t elem_count = *(ptr - 1);
for (uint64_t i = 0; i < elem_count; i++) {