gpt4 book ai didi

c++ - 在没有主体的情况下调用未实现的静态方法

转载 作者:行者123 更新时间:2023-11-27 22:44:13 24 4
gpt4 key购买 nike

template <class T, class U>
struct Conversion {
typedef char Small;
class Big
{
char dummy[2];
};
static Small Test(const U&);
static Big Test(...);
static T MakeT();
enum { check=sizeof( Test( MakeT() ) ) == sizeof( Small ) };
};

我在网上看到这个例子。它检查两个对象的转换能力。该资源解释了旧式 cpp 的模板技巧。我不太明白为什么在传递给 Test() 时调用 MakeT()。最后为什么这一切有效。关键是这些静态函数中没有函数体,因此它们什么也不返回。请帮助我。

最佳答案

它并没有真正被调用,因为它写在 sizeof 中,可以应用于未计算的操作数。 sizeof 正确返回 Test 返回值的大小,因为 Big 是一个完整的类型,但它不关心 TestMakeT 是否有正文。

关于c++ - 在没有主体的情况下调用未实现的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com