gpt4 book ai didi

c++ - 使用 enable_if 隐藏函数定义

转载 作者:太空狗 更新时间:2023-10-29 21:34:25 41 4
gpt4 key购买 nike

<分区>

谁能帮我理解为什么下面的代码不能编译:

#include <type_traits>

class A{};
class B{};


template< typename T >
class C
{
template< typename = std::enable_if_t<std::is_same<T, A>::value > >
void foo()
{}

template< typename = std::enable_if_t<std::is_same<T, B>::value > >
void foo()
{}
};

错误信息:

t.cpp:15:8: error: class member cannot be redeclared
void foo()
^
t.cpp:11:8: note: previous declaration is here
void foo()
^
1 error generated.

我预计总是只有一个 foo 的定义是事件的;在 T 的情况下,第一个等于 A,在 T 的情况下,第二个等于 B.

如果有人可以帮助我修复代码,那就太好了。

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