1 /* Cycript - Optimizing JavaScript Compiler/Runtime
 
   2  * Copyright (C) 2009-2012  Jay Freeman (saurik)
 
   5 /* GNU Lesser General Public License, Version 3 {{{ */
 
   7  * Cycript is free software: you can redistribute it and/or modify it under
 
   8  * the terms of the GNU Lesser General Public License as published by the
 
   9  * Free Software Foundation, either version 3 of the License, or (at your
 
  10  * option) any later version.
 
  12  * Cycript is distributed in the hope that it will be useful, but WITHOUT
 
  13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
  14  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 
  15  * License for more details.
 
  17  * You should have received a copy of the GNU Lesser General Public License
 
  18  * along with Cycript.  If not, see <http://www.gnu.org/licenses/>.
 
  22 #ifndef CYCRIPT_LIST_HPP
 
  23 #define CYCRIPT_LIST_HPP
 
  25 template <typename Type_>
 
  39     void SetNext(Type_ *next) {
 
  44 template <typename Type_>
 
  45 void CYSetLast(Type_ *&list, Type_ *item) {
 
  50         while (next->next_ != NULL)
 
  56 #define CYForEach(value, list) \
 
  57     for (__typeof__(*list) *value(list); value != NULL; value = value->next_)
 
  59 #endif/*CYCRIPT_LIST_HPP*/