I got the following error when I initialize the base class whose constructor takes a reference with a temporary object (jsonrpc::HttpServer(port)
). I thought std::move
is for this scenario but std::move(jsonrpc::HttpServer(port)
doesn't work either. Any idea?
class Server : public jsonrpc::AbstractServer<Server>
{
public:
Server(jsonrpc::AbstractServerConnector &conn) : jsonrpc::AbstractServer<Server>(conn)
{
//...
}
};
class MyServer: public Server {
public: MyServer(int port);
}
// error
MyServer::EnclaveRPC(int port):Server(jsonrpc::HttpServer(port)){}
MyServer::EnclaveRPC(int port):Server(std::move(jsonrpc::HttpServer(port))){}
error: invalid initialization of non-const reference of type ‘jsonrpc::AbstractServerConnector&’ from an rvalue of type ‘jsonrpc::AbstractServerConnector’ : Server(jsonrpc::HttpServer(port)){