1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/base/Easy.h
12 #ifndef ZYPP_BASE_EASY_H
13 #define ZYPP_BASE_EASY_H
15 /** Convenient for-loops using iterator.
17 * std::set<std::string> _store;
18 * for_( it, _store.begin(), _store.end() )
20 * cout << *it << endl;
24 #define for_(IT,BEG,END) for ( auto IT = BEG, _for_end = END; IT != _for_end; ++IT )
25 #define for_each_(IT,CONT) for_( IT, CONT.begin(), CONT.end() )
27 /** Simple C-array iterator
29 * const char * defstrings[] = { "", "a", "default", "two words" };
30 * for_( it, arrayBegin(defstrings), arrayEnd(defstrings) )
31 * cout << *it << endl;
34 #define arrayBegin(A) (&A[0])
35 #define arraySize(A) (sizeof(A)/sizeof(*A))
36 #define arrayEnd(A) (&A[0] + arraySize(A))
38 ///////////////////////////////////////////////////////////////////
40 { /////////////////////////////////////////////////////////////////
41 /////////////////////////////////////////////////////////////////
43 ///////////////////////////////////////////////////////////////////
44 #endif // ZYPP_BASE_EASY_H