45 return d && d->valid();
48 inline void next(
void)
const {
59 return this->operator == (ref);
62 inline operator zfbool (
void)
const {
65 inline zfiter &operator ++ (
void) {
69 inline zfiter operator ++ (
int) {
86 virtual ~Impl(
void) {}
122 template<
typename T_Impl>
123 inline T_Impl
impl(
void)
const {
159 d = (ref.d ? ref.d->copy() :
zfnull);
172 else if(d ==
zfnull || !d->valid()) {
173 return ref.d ==
zfnull || !ref.d->valid();
176 return ref.d !=
zfnull && d->isEqual(ref.d);
179 inline zfbool operator != (
ZF_IN const zfiter &ref)
const {
return !this->operator == (ref);}
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#define zfclassLikePOD
shows the class is not a POD type, but you may use it like a POD except memset it to 0
Definition ZFCoreTypeDef_ClassType.h:41
#define zfpurevirtual
dummy macro shows that a method is pure virtual method
Definition ZFCoreTypeDef_ClassType.h:68
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define zfclassNotPOD
shows the class is not a POD type, you should not memset it or declare it in stack or copy value by c...
Definition ZFCoreTypeDef_ClassType.h:48
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
#define zfnullT
type for zfnull, can be used for function overload
Definition ZFCoreTypeDef_CoreType.h:85
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
#define zftrue
bool true type
Definition ZFCoreTypeDef_CoreType.h:107
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
#define ZFOUTPUT_TYPE(T_Type, outputAction)
declare your custom type conversion to string, convenient for debug
Definition ZFCoreTypeDef_OtherType.h:221
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
see zfiter
Definition zfiter.h:84
virtual zfbool valid(void)=0
see zfiter
virtual zfbool isEqual(Impl *d)=0
see zfiter
virtual Impl * copy(void)=0
see zfiter
virtual void next(void)=0
see zfiter
virtual void destroy(void)=0
see zfiter
iterator for ZFFramework
Definition zfiter.h:40
zfiter copy(void) const
copy
Definition zfiter.h:54
zfiter(Impl *impl)
implementations of iterables must use this to create an iterator, see zfiter
Definition zfiter.h:109
zfbool isEqual(const zfiter &ref) const
compare
Definition zfiter.h:58
zfiter(void)
create a dummy iterator
Definition zfiter.h:104
Impl * impl(void) const
implementations may use this method to access data passed from constructor, see zfiter
Definition zfiter.h:115
void next(void) const
move to next
Definition zfiter.h:48
T_Impl impl(void) const
implementations may use this method to access data passed from constructor, see zfiter
Definition zfiter.h:123
zfstring objectInfo(void) const
return object info
Definition zfiter.h:131
zfbool valid(void) const
whether valid
Definition zfiter.h:44
void objectInfoT(zfstring &ret) const
see objectInfo