From f8b3617394f08d0d310258433ce23ee0e703d7ce Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Tue, 17 Apr 2018 18:00:18 -0400
Subject: [PATCH] bit_field: Remove is_pod check, add is_trivially_copyable_v.

---
 src/common/bit_field.h | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/common/bit_field.h b/src/common/bit_field.h
index 289a2a2ca..99859d0b1 100644
--- a/src/common/bit_field.h
+++ b/src/common/bit_field.h
@@ -166,11 +166,11 @@ public:
     // so that we can use this within unions
     constexpr BitField() = default;
 
-    constexpr FORCE_INLINE operator T() const {
+    constexpr operator T() const {
         return Value();
     }
 
-    constexpr FORCE_INLINE void Assign(const T& value) {
+    constexpr void Assign(const T& value) {
         storage = (static_cast<StorageType>(storage) & ~mask) | FormatValue(value);
     }
 
@@ -191,12 +191,9 @@ private:
     static_assert(position < 8 * sizeof(T), "Invalid position");
     static_assert(bits <= 8 * sizeof(T), "Invalid number of bits");
     static_assert(bits > 0, "Invalid number of bits");
-    static_assert(std::is_pod<T>::value, "Invalid base type");
+    static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable in a BitField");
 };
 #pragma pack()
 
-static_assert(std::is_trivially_copyable<BitField<0, 1, unsigned>>::value,
-              "BitField must be trivially copyable");
-
 template <std::size_t Position, std::size_t Bits, typename T>
 using BitFieldBE = BitField<Position, Bits, T, BETag>;