Lines Matching refs:MemPtr

32         template<class MemPtrT> struct MemPtr {
34 template<class T, class U> struct MemPtr<U T::*> {
59 template<uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags> struct FieldImpl {
60 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
61 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
68 return value.*MemPtr;
73 return value.*MemPtr;
77 template<uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags> struct OneofFieldImpl {
78 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
79 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
87 return value.*MemPtr;
92 return value.*MemPtr;
96 template<uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
98 using type = typename SerialDetail::MemPtr<MemPtrT>::type;
99 using MemberType = typename SerialDetail::MemPtr<MemPtrT>::MemberType;
108 return value.*MemPtr;
113 return value.*MemPtr;
142 template<uint32_t Tag, auto MemPtr, uint32_t Flags = flags::no> constexpr auto Field(const std::string &fieldName)
144 return SerialDetail::FieldImpl<Tag, decltype(MemPtr), MemPtr, Flags> { fieldName };
147 template<uint32_t Tag, size_t Index, auto MemPtr, uint32_t Flags = flags::no>
150 return SerialDetail::OneofFieldImpl<Tag, Index, decltype(MemPtr), MemPtr, Flags> { fieldName };
153 template<uint32_t Tag, auto MemPtr, uint32_t KeyFlags = flags::no, uint32_t ValueFlags = flags::no>
156 return SerialDetail::MapFieldImpl<Tag, decltype(MemPtr), MemPtr, KeyFlags, ValueFlags> { fieldName };
531 template<class T, uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
533 const SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags> &, Writer &out)
535 using OneOf = SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags>;
540 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
542 const SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags> &, Writer &out)
544 using Map = SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags>;
549 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
550 void WriteField(const T &value, const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, Writer &out)
552 using Field = SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags>;
673 template<class T, uint32_t Tag, size_t Index, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
675 const SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags> &, reader &in)
680 using OneOf = SerialDetail::OneofFieldImpl<Tag, Index, MemPtrT, MemPtr, Flags>;
685 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t KeyFlags, uint32_t ValueFlags>
687 const SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags> &, reader &in)
692 using Map = SerialDetail::MapFieldImpl<Tag, MemPtrT, MemPtr, KeyFlags, ValueFlags>;
697 template<class T, uint32_t Tag, class MemPtrT, MemPtrT MemPtr, uint32_t Flags>
699 const SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags> &, reader &in)
704 using Field = SerialDetail::FieldImpl<Tag, MemPtrT, MemPtr, Flags>;