.. _program_listing_file__tmp_ws_src_ros2_planning_system_plansys2_pddl_parser_include_plansys2_pddl_parser_CondIter.h: Program Listing for File CondIter.h =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/ros2_planning_system/plansys2_pddl_parser/include/plansys2_pddl_parser/CondIter.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "plansys2_pddl_parser/Condition.h" namespace parser { namespace pddl { typedef std::list< std::pair< Condition *, unsigned > > CondList; class CondIter : public std::iterator< std::input_iterator_tag, Condition * > { public: CondList condStack; CondIter( Condition * c ) { condStack.push_back( std::make_pair( c, 0 ) ); (*this)++; } CondIter( const CondIter & ci ) : condStack( ci.condStack ) {} MyIterator & operator++() { while ( condStack().size() && condStack.last().done() ) condStack.pop_back(); if ( condStack().size() ) { } return *this; } bool hasNext() { return condStack.size(); } Condition * operator*() { return condStack.last(); } }; } } // namespaces