gpt4 book ai didi

c++ - 判断一个类是否有某个成员?

转载 作者:太空狗 更新时间:2023-10-29 20:31:54 28 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Possible for C++ template to check for a function’s existence?

我试图确定一个类型是否有某个成员。这是我试过的:

template <typename T,typename U=void>
class HasX
{
public:
static const bool Result=false;
};

template <typename T>
class HasX<T,typename enable_if_c<(sizeof(&T::X)>0)>::type>
{
public:
static const bool Result=true;
};


struct A
{
int X();
};

struct B
{
int Y();
};


int main()
{
cout<<HasX<A>::Result<<endl; // 1
cout<<HasX<B>::Result<<endl; // 0
}

它实际上可以在 GCC 上编译和工作,但是 VC 在实例化时给出了 error C2070: 'overloaded-function': illegal sizeof operand

是不是代码有问题,有没有其他方法可以做到这一点?

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