-template <typename Type_>
-struct CYNext {
- Type_ *next_;
-
- CYNext() :
- next_(NULL)
- {
- }
-
- CYNext(Type_ *next) :
- next_(next)
- {
- }
-
- void SetNext(Type_ *next) {
- next_ = next;
- }
-};
-
-#define CYForEach(value, list) \
- for (__typeof__(*list) *value(list); value != NULL; value = value->next_)
-