## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# scfArray< IF, Backend > Class Template Reference
[Containers]

Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array. More...

`#include <csutil/scfarray.h>`

Inheritance diagram for scfArray< IF, Backend >:

[legend]
List of all members.

## Public Member Functions

| scfArray (iBase *scfParent)
| scfArray ()
| Construct with empty storage.
iArrayChangeAll<> implementation
virtual bool | Delete (ContainedType const &item)
virtual void | DeleteAll ()
virtual bool | DeleteFast (ContainedType const &item)
virtual bool | DeleteIndex (size_t n)
virtual bool | DeleteIndexFast (size_t n)
virtual void | Empty ()
virtual ContainedType & | GetExtend (size_t n)
virtual bool | Insert (size_t n, ContainedType const &item)
virtual ContainedType | Pop ()
virtual size_t | Push (ContainedType const &what)
virtual size_t | PushSmart (ContainedType const &what)
virtual void | Put (size_t n, ContainedType const &what)
virtual void | SetSize (size_t n)
virtual void | SetSize (size_t n, ContainedType const &what)
virtual void | Truncate (size_t n)
iArrayReadOnly<> implementation
virtual size_t | Find (ContainedType const &which) const
virtual ContainedType const & | Get (size_t n) const
virtual void | GetAll (ContainedType *dest) const
virtual size_t | GetIndex (const ContainedType *which) const
virtual size_t | GetSize () const
virtual bool | IsEmpty () const
virtual ContainedType const & | Top () const
iArrayChangeElements<> implementation
virtual ContainedType & | Get (size_t n)
virtual ContainedType & | Top ()
| scfArray (const Backend &storage, iBase *scfParent)
| scfArray (const Backend &storage)
| Construct and copy to storage contents from given array.

## Public Attributes

Backend | storage
| The array storage.

## Detailed Description

### template<typename IF, typename Backend = csArray<typename IF::ContainedType>>
class scfArray< IF, Backend >

Implementation for iArrayReadOnly<>-, iArrayChangeElements<>- and iArrayChangeAll<>-derived interfaces, backed by a per-instance array.

The `IF` template parameter denotes the array interface to be implemented, the optional `Backend` remplate parameter the array type internally used for storage.

Usage example:

     struct iSomeArray : public iArrayChangeElements<...> { ... };

     void MyClass::MyMethod()
     {
       csRef<iSomeArray> array;
       array.AttachNew (new scfArray<iSomeArray>);
       ...
     }

Definition at line 58 of file scfarray.h.

## Constructor & Destructor Documentation

template<typename IF, typename Backend = csArray<typename IF::ContainedType>>

scfArray< IF, Backend >::scfArray | ( | const Backend & | storage | ) | `[inline]`

Construct and copy to storage contents from given array.

Definition at line 74 of file scfarray.h.

## Member Data Documentation

template<typename IF, typename Backend = csArray<typename IF::ContainedType>>

Backend scfArray< IF, Backend >::storage

The array storage.

Definition at line 65 of file scfarray.h.

Referenced by scfArray< IF, Backend >::Delete(), scfArray< IF, Backend >::DeleteAll(), scfArray< IF, Backend >::DeleteFast(), scfArray< IF, Backend >::DeleteIndex(), scfArray< IF, Backend >::DeleteIndexFast(), scfArray< IF, Backend >::Empty(), scfArray< IF, Backend >::Find(), scfArray< IF, Backend >::Get(), scfArray< IF, Backend >::GetAll(), scfArray< IF, Backend >::GetExtend(), scfArray< IF, Backend >::GetIndex(), scfArray< IF, Backend >::GetSize(), scfArray< IF, Backend >::Insert(), scfArray< IF, Backend >::IsEmpty(), scfArray< IF, Backend >::Pop(), scfArray< IF, Backend >::Push(), scfArray< IF, Backend >::PushSmart(), scfArray< IF, Backend >::Put(), scfArray< IF, Backend >::SetSize(), scfArray< IF, Backend >::Top(), and scfArray< IF, Backend >::Truncate().

The documentation for this class was generated from the following file:

- csutil/scfarray.h