Как получить доступ к элементу класса из внутреннего класса?

273
19 июня 2017, 21:21

Делаю двоичное дерево поиска, которое хранит функцию сравнения элементов cmp. При попытке использовать ее во внутреннем классе iterator меня информируют:

C2327: tree::cmp не является именем типа, статическим членом или перечислителем.

template <
    /* code */
    typename Compare = std::less<>
> class tree {
    struct node;
    using pointer = std::shared_ptr<node>;
    /* code */
    Compare cmp{};
    class iterator {
        pointer current;
        void next_parent(pointer& leaf)
        {
            if (!leaf->parent)
                return;
            else if (cmp(leaf, leaf->parent))        // error
                leaf = leaf->parent;
            else
                leaf = next_parent(leaf->parent);
        }
    public:
        iterator& operator++()
        {
            if (current->right)
                current = current->right;
            else
                next_parent(current);
            return *this;
        }
        /* code */
    };
    /* code */
};

Как получить доступ к этой нестатической cmp?

READ ALSO
Сохранение настроек приложения / Qt 5.8.0

Сохранение настроек приложения / Qt 5.8.0

У меня программа при установке должна создавать локальную базу данных, для хранения настроек самой программыМне нужно где то сохранить,...

246
Elemen Wise произведение обьектов типа Tensor в tensorflow

Elemen Wise произведение обьектов типа Tensor в tensorflow

В tensorflow есть класс tensorflow::TensorДля них не реализована операция operator*

231
Тестирующая система

Тестирующая система

Искал тестирующие системы на C++, чтобы задачи вставлять на сайт и решать ихИ наткнулся на Sharif Judge

190