当我尝试使用g++ -std=c++17 main.cpp foo.cpp -o main
进行编译时,我得到了undefined reference error
main.cpp:
#include "foo.h"
int main()
{
Foo a;
a.bar<int>();
return 0;
}
foo.cpp:
#include "foo.h"
template<typename Type>
auto Foo::bar() -> Type*
{
return nullptr;
}
foo.h:
#ifndef FOO_H
#define FOO_H
class Foo
{
public:
template<typename Type>
auto bar() -> Type*;
};
#endif
谷歌搜索并没有带我任何有用的地方...总是说我必须像在标题中那样定义模板。有什么想法吗?