首页 > 解决方案 > '&' 标记 C++ 之前应为 ')'

问题描述

我有以下类定义。在尝试构建它时,我遇到了奇怪的错误。我在这里没有看到任何错误。有任何想法吗?

#ifndef SERVER_H
#define SERVER_H

#include <boost/asio.hpp>
#include <boost/asio/io_service.hpp>
#include "room.h"
#include "person_session.h"

class Server{
private:
    boost::asio::ip::tcp::acceptor acceptor;
    Room room;
    void accept();
public:
    Server(boost::asio::io_context& ioc, boost::asio::ip::tcp::endpoint& endpoint):acceptor(ioc,endpoint){
        accept();
    }
};

#endif
expected ‘)’ before ‘&amp;’ token
     Server(boost::asio::io_context& ioc, boost::asio::ip::tcp::endpoint& endpoint):acceptor(ioc,endpoint){}
                                   ^ 
CMakeFiles/server.dir/build.make:134: recipe for target 'CMakeFiles/server.dir/src/server.cpp.o' failed
make[2]: *** [CMakeFiles/server.dir/src/server.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/server.dir/all' failed
make[1]: *** [CMakeFiles/server.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

标签: c++boost

解决方案


io_context是在 Boost 1.66 中添加的一个新名称,用于与 C++ Networking TS 兼容。您必须使用较旧的 Boost 版本。

此页面表明旧名称为io_service,并且此名称也将在新版本中得到支持。


推荐阅读