创建具有可变参数类型的方法

时间:2014-04-23 13:26:48

标签: c++ protocol-buffers

我想创建一个方法,其中我有一个可变参数类型。 我正在写一个需要这个的库,因为你无法确定哪种类型 用户想要使用的对象。

这是一种序列化使用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);
    }
}

0 个答案:

没有答案