mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-21 23:08:28 +00:00
Allow Set() methods to handle reference types
Change-Id: I487ded77d28490189dd5d38236cb04bffaf5f11a
This commit is contained in:
@@ -207,12 +207,12 @@ struct AnyUnion {
|
||||
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 = AnyTraits<typename T::TableType>::enum_value;
|
||||
type = AnyTraits<typename RT::TableType>::enum_value;
|
||||
if (type != Any_NONE) {
|
||||
value = new T(std::forward<T>(val));
|
||||
value = new RT(std::forward<T>(val));
|
||||
}
|
||||
}
|
||||
#endif // FLATBUFFERS_CPP98_STL
|
||||
@@ -348,12 +348,12 @@ struct AnyUniqueAliasesUnion {
|
||||
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 = AnyUniqueAliasesTraits<typename T::TableType>::enum_value;
|
||||
type = AnyUniqueAliasesTraits<typename RT::TableType>::enum_value;
|
||||
if (type != AnyUniqueAliases_NONE) {
|
||||
value = new T(std::forward<T>(val));
|
||||
value = new RT(std::forward<T>(val));
|
||||
}
|
||||
}
|
||||
#endif // FLATBUFFERS_CPP98_STL
|
||||
|
||||
Reference in New Issue
Block a user