From 6ba13aa25e31065cc6cb5efed1210455217ea379 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 7 Apr 2021 12:53:19 +1000 Subject: [PATCH] introspection/name: add member_offset query for pointer-to-member --- introspection/name.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/introspection/name.hpp b/introspection/name.hpp index 36b192f2..024a9bf8 100644 --- a/introspection/name.hpp +++ b/introspection/name.hpp @@ -168,6 +168,15 @@ namespace cruft::introspection::name { } + constexpr std::size_t + member_offset (auto ptr) + { + using klass_t = typename pointer_to_member_class::type; + klass_t instance {}; + return std::uintptr_t (&(instance.*ptr)) - std::uintptr_t (&instance); + } + + /////////////////////////////////////////////////////////////////////////// template struct type_char;