template<class T, typename U> ptrdiff_t foo(T U::* m)
{
// return offset
}
在此上下文中如何获取字段“m”的偏移量?我更愿意使用 am 编译时表达式。
在此先感谢您的帮助。最好的问候
最佳答案
@迈克尔J
感谢您的回答。这不是我一直在寻找的东西,但它给了我这样做的灵感:
template<class T, typename U>
std::ptrdiff_t member_offset(U T::* member)
{
return reinterpret_cast<std::ptrdiff_t>(
&(reinterpret_cast<T const volatile*>(NULL)->*member)
);
}
关于c++ - 指向成员的指针的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617251/