Не могу понять из-за чего выскакивает исключение "Assertion failed: !hook.is_linked(), file d:\boost_1_71_0\boost_1_71_0\boost\intrusive\detail\generic_hook.hpp" . Прошу помощи, так как сам не очень разбираюсь в осях и тем более в библиотеке Boost.
вот основной код:
#include "pch.h"
#include "boost/intrusive/list.hpp"
#include<iostream>
using namespace boost::intrusive;
class MyClass : public list_base_hook<>
{
int int_;
public:
list_member_hook<> member_hook_;
MyClass(int i = 0) : int_(i) {}
};
void func(list<MyClass>* list) {
MyClass mc(1);
list->push_back(mc);
}
int main()
{
list<MyClass> list;
func(&list);
}
Вся идея intrusive list заключается в том, что список "сцепляет" друг с другом непосредственно предоставленные вами объекты. Список не владеет этими объектами, а лишь ссылается на них. Список никак не может контролировать время жизни этих объектов. Обеспечение того, что время жизни этих объектов будет не короче времени жизни самого списка - ваша обязанность. Если вы вдруг уничтожите хотя бы один из объектов, на который в этот момент ссылается такой список, то список разрушится.
Вы поместили в список локальный объект mc
, который сразу же после этого был уничтожен (при выходе из функции). Все. Ваш список "сломался". Об этом вам и говорит данный assertion.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть несколько блоков div с display:inline-block; в них по картинке