sách gpt4 ăn đã đi

C++,静态检测具有不同地址的基类?

In lại 作者:搜寻专家 更新时间:2023-10-31 00:05:56 24 4
mua khóa gpt4 giày nike

如果我有一个具有多个基类的派生类,每个基类的每个 this 指针都将不同于派生对象的 this 指针,除了一个。给定继承层次结构中的两种类型,我想在编译时检测它们是否共享相同的 this 指针。像这样的东西应该有效,但没有:

BOOST_STATIC_ASSERT(static_cast((Derived *)0xDEADBEEF) == (Derived*)0xDEADBEEF);

因为它需要是一个“整数常量表达式”,并且根据标准只允许整数转换(这很愚蠢,因为如果没有使用虚拟继承,它们只需要编译时信息)。尝试将结果作为整数模板参数传递时会出现同样的问题。

我能做的最好的事情就是在启动时进行检查,但我在编译期间需要这些信息(以便让一些深度模板黑客发挥作用)。

câu trả lời hay nhất

我不知道如何检查您不想要的内容,但请注意,在存在空基类的情况下您的假设是错误的。只要它们的类型不同,它们中的任意数量都可以共享从对象开始的相同偏移量。

关于C++,静态检测具有不同地址的基类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131643/

24 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress