非模板类的模板构造函数的问题
Trouble with template constructor of non-template class
在寻找另一个问题的答案时,我开发了一个助手类,它可以处理任何类型的整数容器。具体来说,我的类将根据某些标准查找容器值。为了处理不同类型的容器,我的类显然需要操作的不是容器本身,而是它们的迭代器。我不需要在类的任何地方引用容器,我只使用迭代器,并且只在类的构造函数中使用。
//头文件。
class MyLookup {
public:
template<typename ForwardIt> // Forward iterator though sequence of integers
MyLookup(ForwardIt begin, ForwardIt end)
...
}
//实现文件
template<typename ForwardIt>
MyLookup::MyLookup(ForwardIt begin, ForwardIt end) {
...
}
//使用文件
std::vector<int> foo;
...
MyLookup lookup(foo.begin(), foo.end());
当使用CLang时,初始编译器通过成功,但随后我得到链接器错误:
架构x86_64的未定义符号:"MyLookup: MyLookup> (std:: __1:: __wrap_iter, std:: __1:: __wrap_iter)",引用:…
你知道我做错了什么吗?
您需要在头文件中提供模板的定义,而不是在它们自己的源文件中。这是因为模板实际上是类定义的模板——它们本身并不是类定义。
相关文章:
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- constexpr构造函数需要常量成员函数时出现问题
- 有关 c++ 构造函数的问题
- 关于复制构造函数的一个棘手问题
- 复制构造函数隐式转换问题
- 构造函数 (C++) 中的 char 指针参数存在问题
- C++:关于使用 Stroustrup 示例移动构造函数/赋值的问题
- 关于 std::bitset 构造函数的几个问题?
- 构造函数和 G++ 编译配方的问题
- 在 boost::variant 中类 holden 的复制构造函数存在问题
- C++ 关于两个类构造函数的问题
- 在构造函数 c++ 中初始化属性时出现问题
- 空构造函数和值传递问题
- 我是否需要在虚拟继承类的构造函数中初始化基类以解决菱形继承问题?
- 复制和赋值构造函数的问题
- 变分模板递归构造函数问题
- C++中用户定义的构造函数出现问题
- C ++回测问题:如何检查构造函数在假定失败时是否失败(给定输入的无效参数)
- C++的抽象类继承和构造函数的问题
- 错误 C2280 / 在 std::vector 中实例化对象时复制构造函数出现问题?