mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 03:15:34 +08:00
refs #876 Workaround GCC bug.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67274
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user