template<class ArithT> class NgbT { public: typedef HxNgbCnumTag IteratorCategory; typedef HxNgb1PhaseTag PhaseCategory; typedef HxNgbTransInVarTag TransVarianceCategory; typedef HxCnum CnumType; NgbT(HxTagList& tags); ~NgbT(); HxSizes size(); CnumType begin(); CnumType end(); void init(ArithT value); void next(int x, int y, ArithT value); ArithT result() const; static HxString className(); };
The Requirements on CnumType expressed as a class definition are:
class CnumType { public: CnumType(); CnumType(const CnumType& rhs); CnumType& operator=(const CnumType& rhs); int x(); int y(); int z(); void inc(); bool operator!=(const CnumType& rhs); };