Здравствуйте, niXman, Вы писали:
X>есть класс, мембером которого является vector<type>.
X>этот класс может создавать обекты своего же типа, которые содержат только часть данных из "родительского":
X>проблема тут в том, что данные в "родительском" классе иммутабельны, но дети все равно вынуждены копировать их. от этого и хочется избавиться.
X>одно не нравится в этом варианте: нужны дополнительные мемберы, которые будут использоваться только детьми — значит код класса придется дополнить кучей условий проверки, дите или родитель %)
X>как быть?
В зависимости от задачи. Может оформить аналогично std::string + std::string_view.
У себя в проекте я бы разделил твой класс на собственно "хранилище", в котором где лежит vector<type> и "итератор", тонкая прослойка, в которой лежит указатель на хранилище и индекс нужного элемента во внутреннем массиве. В неё же можно накидать доп. мемберы.
_____________________
С уважением,
Stanislav V. Zudin