boost::property_tree::ordered_end() отсутствует

Я пытаюсь перебрать дерево свойств boost. В документах указано, что

Вы можете получить упорядоченное представление всех дочерних элементов, используя упорядоченные_начала() и упорядоченные_концы().

Однако, когда я пишу

for ( boost::property_tree::ptree::const_assoc_iterator it =
            myPropTree.ordered_begin();
    it != myPropTree.ordered_end();
    it++ )

Компилятор жалуется

error: 'boost::property_tree::ptree' has no member named 'ordered_end'
boost v1.55
mingw
code::blocks

person ravenspoint    schedule 04.03.2015    source источник
comment
Глядя на заголовок, я не вижу ordered_end(), но есть /** Returns the not-found iterator. Equivalent to end() in a real associative container. */ assoc_iterator not_found();   -  person clcto    schedule 04.03.2015


Ответы (1)


В документации ptree говорится:

assoc_iterator ordered_begin();

Возвращает итератор первому дочернему элементу в порядке ключа.

const_assoc_iterator ordered_begin() const;

Возвращает итератор первому дочернему элементу в порядке ключа.

assoc_iterator not_found();

Возвращает ненайденный итератор. Эквивалентно end() в реальном ассоциативном контейнере.

const_assoc_iterator not_found() const;

Возвращает ненайденный итератор. Эквивалентно end() в реальном ассоциативном контейнере.

Так что в основном функция ordered_end называется not_found

person Drax    schedule 04.03.2015