我想创建一个方法,其中我有一个可变参数类型。 我正在写一个需要这个的库,因为你无法确定哪种类型 用户想要使用的对象。
这是一种序列化使用Google ProtocolBuffer制作的对象的方法,但ProtocolBuffer对象可以是不同的类型(名称可以更改)。
这可能吗?我试过这个,但它不起作用:
template <class X>
void Base::Send(X data)
{
// Serialize to string.
std::string sendData;
data.SerializeToString(&sendData);
// Convert data to const char*
const char* dataToSend = sendData.c_str();
int iResult;
iResult = send( ConnectSocket, dataToSend, (int)strlen(dataToSend), 0 );
if (iResult == SOCKET_ERROR)
{
printf("send failed with error: %d\n", WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
exit(1);
}
}