【发布时间】:2015-05-30 06:29:59
【问题描述】:
有客户端和服务器。我使用boost::serialization 发送和接收数据。通常会发送几个不同类型的参数。有没有办法为此制作函数或宏?
例如send(argType1, argType2, argType3);
我想我不会一次发送超过 5 个参数。
-
这是我的版本
template<class T>
int sendData(SSL *ssl, int command, T t)
{
std::string serialData;
OByteStream obs(serialData);
obs << command;
obs << t;
obs.flush();
return SSL_write(ssl, &serialData[0], BUF_SIZE);
}
template<class T1, class T2>
int sendData(SSL *ssl, int command, T1 t1, T2 t2)
{
std::string serialData;
OByteStream obs(serialData);
obs << command;
obs << t1;
obs << t2;
obs.flush();
return SSL_write(ssl, &serialData[0], BUF_SIZE);
}
template<class T1, class T2, class T3>
int sendData(SSL *ssl, int command, T1 t1, T2 t2, T3 t3)
{
std::string serialData;
OByteStream obs(serialData);
obs << command;
obs << t1;
obs << t2;
obs << t3;
obs.flush();
return SSL_write(ssl, &serialData[0], BUF_SIZE);
}
...
【问题讨论】:
-
很难理解你在问什么。也许您应该阅读有关宏的教程,然后具体解释它没有解决的问题。