C++ 中的模板

Templates in c++

本文关键字:C++      更新时间:2023-10-16

可能的重复项:
如何编译位于C++不同文件中的模板?

我想制作一个带有成员函数模板的类模板。

如果我以内联方式编码(我声明它的地方),它可以正常工作,但是如果我想对其进行概述编码(如下面的示例),我会收到一个错误,说"'示例::func':无法将函数定义与现有声明匹配"

template <typename T>
class Example {
public:
    template <typename F>
    void func(F &f);
};

template <typename T, typename F>
void Example<T>::func(F &f) {
    //My code
}

不过,如果此函数位于头文件中,则可能需要将其内联。 否则,您可能会收到重复的符号错误。

template <typename T> template <typename F>
void Example<T>::func(F &f) {
    //My code
}

定义模板类的模板成员的正确格式如下:

template <typename T> template <typename F>
void Example<T>::func(F &f) {
//My code
}
template <typename T>
template <typename F>
void Example<T>::func(F &f) {
    //My code
}

Example类只有一个模板参数T

看看这里。我刚刚回答了一个关于模板显式实例化的问题。您应该能够找到更多关于SO的问题。

相关文章:
  • 没有找到相关文章