public メソッドを持つ overlay_server というクラスがあります
void member_list_server(boost::asio::io_service &io_service){
これを新しいスレッドで実行したいと思います。そこで、新しいスレッドを作成し、そのコンストラクターで bind を使用します。
void member_list_server 関数内で io_service を作成する前に。しかし、今、メインで io_service オブジェクトを作成して、エラーが発生するこのスレッドに渡そうとしていますか?
int main(){
boost::asio::io_service io_service_;
overlay_server overlay_server_(8002);
boost::thread thread_(
boost::bind(&overlay_server::member_list_server, overlay_server_, io_service_)
);
なぜエラーが発生するのですか
エラー C2248: 'boost::noncopyable_::noncopyable::noncopyable': クラス 'boost::noncopyable_::noncopyable' で宣言されたプライベート メンバーにアクセスできません
io_service を必要とする他のクラスのインスタンスも作成します。メインで io_service オブジェクトを 1 つ作成し、それをすべてのスレッドに渡すのが最善の方法ですか?
または、将来作成するすべてのスレッド内に別のスレッドを作成しますか?