Re[3]: общий ресурс
От: Stanislav V. Zudin Россия  
Дата: 19.12.19 07:55
Оценка:
Здравствуйте, niXman, Вы писали:

SVZ>>В зависимости от задачи. Может оформить аналогично std::string + std::string_view.

X>получится то, чего не хочется — куча проверок на "дите"/"родитель"

ну т.к. ты не озвучил, что за задачу пытаешься решить, то приходится гадать.
может и не надо делать проверок

SVZ>>У себя в проекте я бы разделил твой класс на собственно "хранилище", в котором где лежит vector<type> и "итератор"

X>получится нелогично. потому что каждое "дите" может порождать других "детей" и является для них "родителем".

когда твой объект становится "родителем", у него появляется свой собственный vector<type> или все они пользуются единым (назовём его "корневым")?

Например для работы с xml я использовал разделение на "Документ" и "узел".
Документ хранит все данные и обспечивает целостность.
А чтение, добавление, удаление узлов и атрибутов выполнялось через итераторы.

Как-то так.
    dom::Document document;
...
    dom::inode root = dom::root(document);
    
    for(dom::inode child = root.getChild(); !child.end(); ++child )
    {
        if ( xml::IsTag(child, NODE_TYPE) )
            doSomething(child);
    }
_____________________
С уважением,
Stanislav V. Zudin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.