|
@@ -100,7 +100,7 @@ inline ExtensionSet* GetExtensionSet(MessageLite* msg, int64 extension_offset) {
|
|
|
|
|
|
template <typename Type>
|
|
template <typename Type>
|
|
inline Type* AddField(MessageLite* msg, int64 offset) {
|
|
inline Type* AddField(MessageLite* msg, int64 offset) {
|
|
- static_assert(std::is_trivially_copy_assignable<Type>::value ||
|
|
|
|
|
|
+ static_assert(std::is_pod<Type>::value ||
|
|
std::is_same<Type, InlinedStringField>::value,
|
|
std::is_same<Type, InlinedStringField>::value,
|
|
"Do not assign");
|
|
"Do not assign");
|
|
|
|
|
|
@@ -119,7 +119,7 @@ inline string* AddField<string>(MessageLite* msg, int64 offset) {
|
|
|
|
|
|
template <typename Type>
|
|
template <typename Type>
|
|
inline void AddField(MessageLite* msg, int64 offset, Type value) {
|
|
inline void AddField(MessageLite* msg, int64 offset, Type value) {
|
|
- static_assert(std::is_trivially_copy_assignable<Type>::value,
|
|
|
|
|
|
+ static_assert(std::is_pod<Type>::value,
|
|
"Do not assign");
|
|
"Do not assign");
|
|
*AddField<Type>(msg, offset) = value;
|
|
*AddField<Type>(msg, offset) = value;
|
|
}
|
|
}
|
|
@@ -141,7 +141,7 @@ inline Type* MutableField(MessageLite* msg, uint32* has_bits,
|
|
template <typename Type>
|
|
template <typename Type>
|
|
inline void SetField(MessageLite* msg, uint32* has_bits, uint32 has_bit_index,
|
|
inline void SetField(MessageLite* msg, uint32* has_bits, uint32 has_bit_index,
|
|
int64 offset, Type value) {
|
|
int64 offset, Type value) {
|
|
- static_assert(std::is_trivially_copy_assignable<Type>::value,
|
|
|
|
|
|
+ static_assert(std::is_pod<Type>::value,
|
|
"Do not assign");
|
|
"Do not assign");
|
|
*MutableField<Type>(msg, has_bits, has_bit_index, offset) = value;
|
|
*MutableField<Type>(msg, has_bits, has_bit_index, offset) = value;
|
|
}
|
|
}
|