| 553 | |
| 554 | template <typename T, typename Derived_t, typename Field_t> |
| 555 | inline decltype(auto) |
| 556 | set(T &d, FieldId<Derived_t, Field_t> &field) |
| 557 | { |
| 558 | Extendible<Derived_t> const &ext = d; |
| 559 | FieldPtr fld_ptr = ext::details::FieldPtrGet(ext, *field.desc); |
| 560 | return ext::details::fieldSet(fld_ptr, field); |
| 561 | } |
| 562 | |
| 563 | ///////////////////////// |
| 564 | // ext::sizeOf - returns the size of a class + all extensions. |