ezEngine  Milestone 7
StaticArray.h
1 #pragma once
2 
3 #include <Foundation/Containers/ArrayBase.h>
4 
11 template <typename T, ezUInt32 Capacity>
12 class ezStaticArray : public ezArrayBase<T, ezStaticArray<T, Capacity> >
13 {
14 public:
16  ezStaticArray(); // [tested]
17 
19  ezStaticArray(const ezStaticArray<T, Capacity>& rhs); // [tested]
20 
22  template<ezUInt32 OtherCapacity>
23  ezStaticArray(const ezStaticArray<T, OtherCapacity>& rhs); // [tested]
24 
26  explicit ezStaticArray(const ezArrayPtr<const T>& rhs); // [tested]
27 
29  ~ezStaticArray(); // [tested]
30 
32  void operator= (const ezStaticArray<T, Capacity>& rhs); // [tested]
33 
35  template<ezUInt32 OtherCapacity>
36  void operator= (const ezStaticArray<T, OtherCapacity>& rhs); // [tested]
37 
39  void operator= (const ezArrayPtr<const T>& rhs); // [tested]
40 
41 private:
42  T* GetStaticArray();
43 
45  struct : ezAligned<EZ_ALIGNMENT_OF(T)>
46  {
47  ezUInt8 m_Data[Capacity * sizeof(T)];
48  };
49 
50  friend class ezArrayBase<T, ezStaticArray<T, Capacity> >;
51  void Reserve(ezUInt32 uiCapacity);
52 };
53 
54 #include <Foundation/Containers/Implementation/StaticArray_inl.h>
55