Skip to content

Commit dcfab8d

Browse files
authored
Merge pull request #1914 from daniellopez2002/4.5
Fix VARIANT_ENUM_CAST to support enum class
2 parents 4862384 + 2fbceba commit dcfab8d

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

include/godot_cpp/core/binder_common.hpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,25 @@
4040

4141
namespace godot {
4242

43-
#define VARIANT_ENUM_CAST(m_enum) \
44-
namespace godot { \
45-
MAKE_ENUM_TYPE_INFO(m_enum) \
46-
template <> \
47-
struct VariantCaster<m_enum> { \
48-
static _FORCE_INLINE_ m_enum cast(const Variant &p_variant) { \
49-
return (m_enum)p_variant.operator int64_t(); \
50-
} \
51-
}; \
52-
template <> \
53-
struct PtrToArg<m_enum> { \
54-
_FORCE_INLINE_ static m_enum convert(const void *p_ptr) { \
55-
return m_enum(*reinterpret_cast<const int64_t *>(p_ptr)); \
56-
} \
57-
typedef int64_t EncodeT; \
58-
_FORCE_INLINE_ static void encode(m_enum p_val, void *p_ptr) { \
59-
*reinterpret_cast<int64_t *>(p_ptr) = p_val; \
60-
} \
61-
}; \
43+
#define VARIANT_ENUM_CAST(m_enum) \
44+
namespace godot { \
45+
MAKE_ENUM_TYPE_INFO(m_enum) \
46+
template <> \
47+
struct VariantCaster<m_enum> { \
48+
static _FORCE_INLINE_ m_enum cast(const Variant &p_variant) { \
49+
return (m_enum)p_variant.operator int64_t(); \
50+
} \
51+
}; \
52+
template <> \
53+
struct PtrToArg<m_enum> { \
54+
_FORCE_INLINE_ static m_enum convert(const void *p_ptr) { \
55+
return m_enum(*reinterpret_cast<const int64_t *>(p_ptr)); \
56+
} \
57+
typedef int64_t EncodeT; \
58+
_FORCE_INLINE_ static void encode(m_enum p_val, void *p_ptr) { \
59+
*reinterpret_cast<int64_t *>(p_ptr) = static_cast<int64_t>(p_val); \
60+
} \
61+
}; \
6262
}
6363

6464
#define VARIANT_BITFIELD_CAST(m_enum) \
@@ -77,7 +77,7 @@ namespace godot {
7777
} \
7878
typedef int64_t EncodeT; \
7979
_FORCE_INLINE_ static void encode(BitField<m_enum> p_val, void *p_ptr) { \
80-
*reinterpret_cast<int64_t *>(p_ptr) = p_val; \
80+
*reinterpret_cast<int64_t *>(p_ptr) = static_cast<int64_t>(p_val); \
8181
} \
8282
}; \
8383
}

0 commit comments

Comments
 (0)