refs #876 Workaround GCC bug.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67274
This commit is contained in:
Mathew Sutcliffe
2017-02-14 20:31:48 +00:00
parent 7b8d88876f
commit 4fd9ecbe4d
2 changed files with 4 additions and 4 deletions

View File

@@ -84,7 +84,7 @@ namespace BlackMisc
{ {
baseMarshall(static_cast<const TBaseOfT<Derived> *>(derived()), arg); baseMarshall(static_cast<const TBaseOfT<Derived> *>(derived()), arg);
auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>()); auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>());
meta.forEachMember([ &, this ](auto member) { Private::marshallMember(arg, member.in(*derived())); }); meta.forEachMember([ &, this ](auto member) { Private::marshallMember(arg, member.in(*this->derived())); });
} }
//! Unmarshall without begin/endStructure, for when composed within another object //! Unmarshall without begin/endStructure, for when composed within another object
@@ -92,7 +92,7 @@ namespace BlackMisc
{ {
baseUnmarshall(static_cast<TBaseOfT<Derived> *>(derived()), arg); baseUnmarshall(static_cast<TBaseOfT<Derived> *>(derived()), arg);
auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>()); auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>());
meta.forEachMember([ &, this ](auto member) { Private::unmarshallMember(arg, member.in(*derived())); }); meta.forEachMember([ &, this ](auto member) { Private::unmarshallMember(arg, member.in(*this->derived())); });
} }
private: private:

View File

@@ -357,7 +357,7 @@ namespace BlackMisc
auto meta = introspect<Derived>().without(MetaFlags<DisabledForJson>()); auto meta = introspect<Derived>().without(MetaFlags<DisabledForJson>());
meta.forEachMember([ &, this ](auto member) meta.forEachMember([ &, this ](auto member)
{ {
json << std::make_pair(CExplicitLatin1String(member.latin1Name()).toJsonKey(), std::cref(member.in(*derived()))); json << std::make_pair(CExplicitLatin1String(member.latin1Name()).toJsonKey(), std::cref(member.in(*this->derived())));
}); });
return Json::appendJsonObject(json, baseToJson(static_cast<const TBaseOfT<Derived> *>(derived()))); return Json::appendJsonObject(json, baseToJson(static_cast<const TBaseOfT<Derived> *>(derived())));
} }
@@ -385,7 +385,7 @@ namespace BlackMisc
else else
{ {
CJsonScope scope(member.latin1Name()); CJsonScope scope(member.latin1Name());
value >> member.in(*derived()); value >> member.in(*this->derived());
} }
}); });
} }