/ / Защо получавам достъп до частния член, деклариран в class 'boost :: asio :: detail :: noncopyable'? - C ++, boost, visual-studio-2012, boost-asio

Защо получавам няма достъп до частен член, обявен в клас 'boost :: asio :: detail :: noncopyable'? - C ++, тласък, визуално студио-2012, boost-asio

Следвам Това урок за SSL. Единственото нещо, което направих, което не беше направено в този урок, е да поставя всеки клас в неговите собствени файлове. Нямам представа къде се хвърля така, така че е трудно за мен да отстранявам грешки.

C2248: "boost :: asio :: detail :: noncopyable :: noncopyable": няма достъп до частния член, деклариран в клас "boost :: asio :: detail :: noncopyable"

Отговори:

2 за отговор № 1

Честа грешка при работа с Boost.Asio е това boost::asio::io_service не може да се копира, така че можете да съхранявате само референции към него в класовете си:

struct foo
{
foo(boost::asio::io_service & io_service)
: io_service_(io_service)
{}

private:
boost::asio::io_service & io_service_;    // ok
};

Ако сте заявили boost::asio::io_service io_service_ вместо това получавате посочената по-горе грешка, защото инициализацията io_service_(io_service) зависи от извикването на конструктора за копиране.