|
|
template<typename Owner, typename Member, Member Owner::* member> |
| auto | lib::container_of (const Member *ptr) noexcept -> const Owner * |
| | Const-qualified overload of container_of.
|
|
template<typename Owner, typename Member, Member Owner::* member> |
| auto | lib::container_of (Member *ptr) noexcept -> Owner * |
| | Recover the enclosing object from a pointer to one of its members.
|
|
template<typename Outer, typename Inner, typename Field, Inner Outer::* outer_member, Field Inner::* inner_member> |
| auto | lib::container_of_anchor (Field *ptr) noexcept -> Outer * |
| | Two-level container_of: Outer::outer_member is an Inner struct that itself contains inner_member of type Field. Walks back from ptr (a Field*) to the enclosing Outer instance.
|