我正在努力使用模板。對我來說,以下編譯就好:功能模板部分專業化'swap <T>'不允許
//foo.h
class foo {
public:
template <typename T>
void swap(T* values, uint8_t offset)
{
T swp = values[offset];
values[offset] = values[offset + 1];
values[offset + 1] = swp;
}
};
這不:
//foo.h
class foo {
public:
template <typename T>
void swap(T* values, uint8_t offset);
};
//foo.cpp
template <typename T>
void foo::swap<T>(T* values, uint8_t offset)
{
T swp = values[offset];
values[offset] = values[offset + 1];
values[offset + 1] = swp;
}
我得到錯誤信息
error: function template partial specialization 'swap<T>' is not allowed
我不知道這意味着什麼,所以我不清楚如何進行。提前Thanx。
有關.cpp文件中模板定義的更多信息,請參閱http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file?rq=1。 –
@rwols當然可以,請參閱上述評論中的鏈接。 – emlai