今天改Qt代码时突然看到foreach,心血来潮想研究一下。
define foreach Q_FOREACH
在看这个Q_FOREACH之前,我先贴出一些类、函数和宏名
//这是一个空结构体,大概作为一个抽象吧
struct QForeachContainerBase {};
//QForeachContainer 继承QForeachContainerBase
template <typename T> //T是传进来的container对象,比如qvector,qlist等
class QForeachContainer : public QForeachContainerBase {
public:
inline QForeachContainer(const T& t): c(t), brk(0), i(c.begin()), e(c.end()){}
const T c;
mutable int brk;
mutable typename T::const_iterator i, e;
inline bool condition() const { retu