Allow Set() methods to handle reference types

Change-Id: I487ded77d28490189dd5d38236cb04bffaf5f11a
This commit is contained in:
Wouter van Oortmerssen
2019-04-11 14:18:21 -07:00
parent 60340ac529
commit 640df2c1f5
3 changed files with 12 additions and 13 deletions

View File

@@ -119,12 +119,12 @@ struct EquipmentUnion {
void Reset();
#ifndef FLATBUFFERS_CPP98_STL
template <typename T>
template <typename T, typename RT = typename std::remove_reference<T>::type>
void Set(T&& val) {
Reset();
type = EquipmentTraits<typename T::TableType>::enum_value;
type = EquipmentTraits<typename RT::TableType>::enum_value;
if (type != Equipment_NONE) {
value = new T(std::forward<T>(val));
value = new RT(std::forward<T>(val));
}
}
#endif // FLATBUFFERS_CPP98_STL