Browse Source

BitField: allow chained set_flag(), make constructors constexpr

Pedro J. Estébanez 1 year ago
parent
commit
fec76d0c22
1 changed files with 7 additions and 4 deletions
  1. 7 4
      core/variant/type_info.h

+ 7 - 4
core/variant/type_info.h

@@ -287,14 +287,17 @@ class BitField {
 	int64_t value = 0;
 	int64_t value = 0;
 
 
 public:
 public:
-	_FORCE_INLINE_ void set_flag(T p_flag) { value |= (int64_t)p_flag; }
+	_FORCE_INLINE_ BitField<T> &set_flag(T p_flag) {
+		value |= (int64_t)p_flag;
+		return *this;
+	}
 	_FORCE_INLINE_ bool has_flag(T p_flag) const { return value & (int64_t)p_flag; }
 	_FORCE_INLINE_ bool has_flag(T p_flag) const { return value & (int64_t)p_flag; }
 	_FORCE_INLINE_ bool is_empty() const { return value == 0; }
 	_FORCE_INLINE_ bool is_empty() const { return value == 0; }
 	_FORCE_INLINE_ void clear_flag(T p_flag) { value &= ~(int64_t)p_flag; }
 	_FORCE_INLINE_ void clear_flag(T p_flag) { value &= ~(int64_t)p_flag; }
 	_FORCE_INLINE_ void clear() { value = 0; }
 	_FORCE_INLINE_ void clear() { value = 0; }
-	_FORCE_INLINE_ BitField() = default;
-	_FORCE_INLINE_ BitField(int64_t p_value) { value = p_value; }
-	_FORCE_INLINE_ BitField(T p_value) { value = (int64_t)p_value; }
+	_FORCE_INLINE_ constexpr BitField() = default;
+	_FORCE_INLINE_ constexpr BitField(int64_t p_value) { value = p_value; }
+	_FORCE_INLINE_ constexpr BitField(T p_value) { value = (int64_t)p_value; }
 	_FORCE_INLINE_ operator int64_t() const { return value; }
 	_FORCE_INLINE_ operator int64_t() const { return value; }
 	_FORCE_INLINE_ operator Variant() const { return value; }
 	_FORCE_INLINE_ operator Variant() const { return value; }
 };
 };