gpt4 book ai didi

c++ - 在cpp中重载模板函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:12 25 4
gpt4 key购买 nike

我有这个hpp

namespace A
{
template<class T>
class MyC
{
public:
T a;
};

template<class T>
void F(T r);
}

和这个 cpp

template<>
void A::F<double>(double r)
{
r;
}

template<>
void A::F<int>(int r)
{
r;
}

template<class T>
void A::F<A::MyC<T>>(A::MyC<T> r)
{
r;
}
template void A::F<A::MyC<int>>(A::MyC<int>);
template void A::F<A::MyC<double>>(A::MyC<double>);

但编译器说 “无法将函数定义与现有声明相匹配” 关于 F。

这段代码有什么问题?

最佳答案

将这些声明全部放入 namespace A { ... } 并删除 A::。另一方面,函数模板偏特化是不允许的,这会出错:

template<class T>
void F<MyC<T>>(MyC<T> r)
{
...
}

关于c++ - 在cpp中重载模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564499/

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