未定义的符号可变函数

时间:2018-01-16 01:27:18

标签: c++ variadic-functions

我正在尝试创建一个允许可变数量输入的方法。我试图实现this回答(请参阅下面的代码)但是,当我尝试运行代码时出现错误。

代码

头:

template<typename T, typename... Args>
void vSend ( T tIn, Args... AArgs );
template <typename T>
void vSend ( T tIn );

CPP

template<typename T, typename... Args>
void Connector::vSend ( T tIn, Args... AArgs )
{
    pPacketToSend << tIn;

    vSend(AArgs...);
}

template <typename T>
void Connector::vSend ( T tIn )
{
    pPacketToSend << tIn;

    tSocket.send(pPacketToSend);
}

错误

Undefined symbols for architecture x86_64:
  "void Connector::vSend<int, int>(int, int)", referenced from:
      Updater::Update(sf::Image*) in updatedirector.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

编辑(答案)

结果模板只能在头文件中实现。

0 个答案:

没有答案