| 544 | /// ext::get & ext::set accessor functions |
| 545 | template <typename T, typename Derived_t, typename Field_t> |
| 546 | inline decltype(auto) |
| 547 | get(T const &d, FieldId<Derived_t, Field_t> &field) |
| 548 | { |
| 549 | Extendible<Derived_t> const &ext = d; |
| 550 | FieldPtr fld_ptr = ext::details::FieldPtrGet(ext, *field.desc); |
| 551 | return ext::details::fieldGet(fld_ptr, field); |
| 552 | } |
| 553 | |
| 554 | template <typename T, typename Derived_t, typename Field_t> |
| 555 | inline decltype(auto) |