Спасибо всем, теперь он работает, используя (это! = * Child), как вы все предложили.

sual Studio этот фрагмент кода работает, и это очарование:

auto child = node.childs.begin();
    while (child != node.childs.end()) {
        vector<int> siblings;
        for (auto it : node.childs){
            if (it != *child._Ptr)siblings.push_back( it );
        }
        if (CheckSomething( tree, *child._Ptr, siblings ) > 0) {
            //delete that child
            child = node.childs.erase( child );
        }
        else ++child;
    }

но с тем же кодом на XCode я получил ошибки, как _Ptr не существует? это не та же библиотека STD с теми же структурами? почему это случилось?

File.cpp:1745:22: No member named '_Ptr' in 'std::__1::__wrap_iter<int *>'

заранее спасибо