如何将模板构造函数专用化移动到 cpp 文件
How to move template constructor specialization to cpp file?
我知道模板的实现应该转到标题的原因。这个问题是关于模板专业化的。据我了解,此设置应该有效。
页眉:
template<class T>
class Foo {
public:
Foo(T value) {
// not specialized
}
};
template<> Foo<double>::Foo(double value);
.cpp:
// specialization for float
template<>
Foo<double>::Foo(double value) {
// special version for double
}
用法:
Foo<double>(0);
但是,我收到一个编译器错误:
error LNK2019: unresolved external symbol "public: __thiscall Foo<double>::Foo<double>(double)" (??0?$Foo@N@@QAE@N@Z) referenced in function _wmain
我做错了什么?有没有另一种方法可以将专用构造函数移动到实现文件?
在我看来,
这看起来像是Visual C++编译器中的一个错误,因为代码可以编译和链接并使用MinGW g ++运行良好,但我不确定。
无论如何,以下解决方法标头代码适用于视觉C++。
#pragma once
template<class T>
class Foo
{
public:
Foo( T )
{
// not specialized
}
};
template<> Foo<double>::Foo( double );
template class Foo<double>;
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 为什么将 operator() 的定义从 .h 移动到.cpp文件会导致数据竞争?
- 将函数及其实现移动到与主文件不同的文件(.hpp 和 .cpp)时,性能会受到很大影响
- 将过滤器中的所有.cpp和.h移动到另一个项目并更正其文件夹位置
- Pimpl with unique_ptr : 为什么我必须将接口构造函数的定义移动到".cpp"?
- Visual Studio:半自动方式从.cpp移动到.h
- 如何将模板构造函数专用化移动到 cpp 文件
- 如果将功能的非常简单的定义移动到.cpp,则编译时间的减少是多少
- Qt移动插槽功能到另一个cpp文件
- C++/DX11从.h移动到.cpp会导致错误
- 将类函数实现从 .h 移动到.cpp过程
- "Unresolved external _WinMain@16"如果我将 WndProc 移动到另一个 cpp 文件
- CPP Win32移动鼠标,Wont移动到我指定的位置
- 用于解析C++源代码并将头内联方法移动到.cpp源文件的工具
- 将内联方法从头文件移动到.cpp文件
- 自动将函数从头文件移动到cpp文件