Здравствуйте, гость ( Вход | Регистрация )
ViGOur | Дата 14.1.2012, 11:57 |
medhaid, всё нормально. Из этого видно, что ты не бот и думающий программер! Да и наверняка твой ответ кому-нибудь еще пригодится... |
|
medhaid | Дата 14.1.2012, 1:00 |
Как дурак пишу вопросы и сам на них отвечаю))) искал и наконец нашёл решение))) //перевод с буржуйского форума.. Перед вызовом shared_from_this() ваш класс должен быть сохранен в shared_ptr . Это означает, что вы не можете назвать shared_from_this() внутри конструктора, так как линия объект не будет помещен в shared_ptr пока конструктор закончена. Именно по этой причине, что классы, которые используют enable_shared_from_this как правило, имеют start функция, которая делает последние шаги инициализации, которые требуют использования shared_from_this() . Это начало функция должна быть вызвана после Объект полностью построен, и поэтому не может быть вызван из внутри конструктора, как вы делаете. P.S. извиняюсь что создал тему зря.... |
|
medhaid | Дата 14.1.2012, 0:07 |
Здравствуйте, не пойму откуда взялась ошибка... выдается исключение bad_weak_ptr после вызова метода... socketTCP->async_read_some(boost::asio::buffer(recvBuffer), boost::bind(&Client::handle_read, this->shared_from_this(), boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); //handle_read, handle_write - статическая функция класса Client.. если знаете в чём проблема просьба пояснить почему возникает исключение на моём примере....
консоль: accept connect Exception: tr1::bad_weak_ptr Для продолжения нажмите любую клавишу . . . |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 25.4.2024, 10:53 |