mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 02:06:08 +08:00
refs #876 All metaclass mixins now directly access the metamembers.
This avoids bloating CMetaClassIntrospector with inconvenient convenience methods.
This commit is contained in:
@@ -84,7 +84,7 @@ namespace BlackMisc
|
||||
{
|
||||
baseMarshall(static_cast<const TBaseOfT<Derived> *>(derived()), arg);
|
||||
auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>());
|
||||
meta.forEachMember(*derived(), [ & ](const auto &member) { Private::marshallMember(arg, member); });
|
||||
meta.forEachMember([ &, this ](auto member) { Private::marshallMember(arg, member.in(*derived())); });
|
||||
}
|
||||
|
||||
//! Unmarshall without begin/endStructure, for when composed within another object
|
||||
@@ -92,7 +92,7 @@ namespace BlackMisc
|
||||
{
|
||||
baseUnmarshall(static_cast<TBaseOfT<Derived> *>(derived()), arg);
|
||||
auto meta = introspect<Derived>().without(MetaFlags<DisabledForMarshalling>());
|
||||
meta.forEachMember(*derived(), [ & ](auto &member) { Private::unmarshallMember(arg, member); });
|
||||
meta.forEachMember([ &, this ](auto member) { Private::unmarshallMember(arg, member.in(*derived())); });
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user