#ifndef VCZH_COLLECTIONS_INTERFACES
#define VCZH_COLLECTIONS_INTERFACES
#include "../Basic.h"
#include "../Pointer.h"
#include "Pair.h"
namespace
{
namespace
{
template
<
typename
>
class
:
public
virtual
{
public
:
typedef
;
virtual
<
>*
()
const
=
0
;
virtual
const
&
()
const
=
0
;
virtual
()
const
=
0
;
virtual
bool
()=
0
;
virtual
void
()=
0
;
virtual
bool
()
const
{
return
false
;}
};
template
<
typename
>
class
:
public
virtual
{
public
:
typedef
;
virtual
<
>*
()
const
=
0
;
};
namespace
{
template
<
typename
>
struct
{
static
const
bool
=
false
;
static
const
bool
=
false
;
};
template
<
typename
>
struct
{
static
(
const
&
)
{
return
.Count();
}
static
const
typename
::ElementType&
(
const
&
,
)
{
return
.Get(
);
}
static
void
(
&
,
)
{
.Resize(
);
}
static
void
(
&
,
,
const
typename
::ElementType&
)
{
.Set(
,
);
}
static
void
(
&
,
const
typename
::ElementType&
)
{
.Add(
);
}
};
}
}
}
#endif