Fixed VS2010 build.

Change-Id: I3ee68c5f250d6baa02060ab2ecbc0f0fe254a9d8
parent 640df2c1
......@@ -119,8 +119,9 @@ struct EquipmentUnion {
void Reset();
#ifndef FLATBUFFERS_CPP98_STL
template <typename T, typename RT = typename std::remove_reference<T>::type>
template <typename T>
void Set(T&& val) {
using RT = typename std::remove_reference<T>::type;
Reset();
type = EquipmentTraits<typename RT::TableType>::enum_value;
if (type != Equipment_NONE) {
......
......@@ -1096,8 +1096,9 @@ class CppGenerator : public BaseGenerator {
code_ += "";
if (!enum_def.uses_multiple_type_instances) {
code_ += "#ifndef FLATBUFFERS_CPP98_STL";
code_ += " template <typename T, typename RT = typename std::remove_reference<T>::type>";
code_ += " template <typename T>";
code_ += " void Set(T&& val) {";
code_ += " using RT = typename std::remove_reference<T>::type;";
code_ += " Reset();";
code_ += " type = {{NAME}}Traits<typename RT::TableType>::enum_value;";
code_ += " if (type != {{NONE}}) {";
......
......@@ -207,8 +207,9 @@ struct AnyUnion {
void Reset();
#ifndef FLATBUFFERS_CPP98_STL
template <typename T, typename RT = typename std::remove_reference<T>::type>
template <typename T>
void Set(T&& val) {
using RT = typename std::remove_reference<T>::type;
Reset();
type = AnyTraits<typename RT::TableType>::enum_value;
if (type != Any_NONE) {
......@@ -348,8 +349,9 @@ struct AnyUniqueAliasesUnion {
void Reset();
#ifndef FLATBUFFERS_CPP98_STL
template <typename T, typename RT = typename std::remove_reference<T>::type>
template <typename T>
void Set(T&& val) {
using RT = typename std::remove_reference<T>::type;
Reset();
type = AnyUniqueAliasesTraits<typename RT::TableType>::enum_value;
if (type != AnyUniqueAliases_NONE) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment