非模板类中的模板方法

时间:2018-11-06 07:21:36

标签: c++ class templates member

当我尝试使用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

谷歌搜索并没有带我任何有用的地方...总是说我必须像在标题中那样定义模板。有什么想法吗?

0 个答案:

没有答案