В классах
list,
set,
array, etc. есть метод
container pack(), который должен конвертировать содержимое соответствующего контейнерного класса в "стандартный" контейнер Х++.
В процессе его тестирования были обнаружены следующие особенности:
- количество элементов в исходном классе на 3 меньше длины получаемого контейнера, то есть Source.elements() возвращает N, а conlen(Dest) - N + 3;
- первый элемент получаемого контейнера всегда (по крайней мере в моих экспериментах) равен 1;
- второй и третий элементы - соответственно 1 и N;
- сами данные начинаются с 4-го элемента.
Кто-то может объяснить предназначение этих трех элементов итогового контейнера? Правильно ли я уловил закономерность?