瀏覽代碼

BitField: allow chained set_flag(), make constructors constexpr

Pedro J. Estébanez 2 年之前
父節點
當前提交
fec76d0c22
共有 1 個文件被更改,包括 7 次插入4 次删除
  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;
 
 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 is_empty() const { return value == 0; }
 	_FORCE_INLINE_ void clear_flag(T p_flag) { value &= ~(int64_t)p_flag; }
 	_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 Variant() const { return value; }
 };