#ifndef VCZH_COLLECTIONS_OPERATIONWHERE
#define VCZH_COLLECTIONS_OPERATIONWHERE
#include "OperationSelect.h"
namespace
{
namespace
{
template
<
typename
>
class
:
public
virtual
<
>
{
protected
:
<
>*
;
<
bool
(
)>
;
;
public
:
(
<
>*
,
const
<
bool
(
)>&
,
=-
1
)
:enumerator(
)
,selector(
)
,index(
)
{
}
()
{
delete
;
}
<
>*
()
const
override
{
return
new
(
->
(),
,
);
}
const
&
()
const
override
{
return
->
();
}
()
const
override
{
return
;
}
bool
()
override
{
while
(
->
())
{
if
(
->
()))
{
++;
return
true
;
}
}
return
false
;
}
void
()
override
{
->
();
=-
1
;
}
};
}
}
#endif