24 #ifndef ACLVECTORELEMENTSDEF_H
25 #define ACLVECTORELEMENTSDEF_H
29 #include "../aclTypes.h"
44 typedef std::shared_ptr<ElementBase>
Element;
47 class VectorOfElements;
56 class VectorOfElementsData:
public std::vector<ElementData>
60 bool checkCompatibility()
const;
63 bool checkSizesCompatibility(
unsigned int n)
const;
64 VectorOfElementsData();
65 explicit VectorOfElementsData(
unsigned int n);
72 template <
typename T> VectorOfElementsData(
unsigned int n,
75 template <
typename T> VectorOfElementsData(
unsigned int n,
80 VectorOfElements operator=(
const VectorOfElements & a)
const;
81 VectorOfElements operator=(
const VectorOfElementsData & a)
const;
82 void resizeElements(
unsigned int n);
91 class VectorOfElements:
public std::vector<Element>
95 bool checkCompatibility()
const;
98 bool checkSizesCompatibility(
unsigned int n)
const;
100 explicit VectorOfElements(
unsigned int n);
101 VectorOfElements(
const VectorOfElementsData & a);
102 VectorOfElements operator=(
const VectorOfElements & a)
const;
108 inline bool compatibleSizes (
unsigned int s,
const VectorOfElements & a);
111 acl::TypeID getElementType(
const VectorOfElements & a,
unsigned int i = 0);
114 unsigned int getElementsSize(
const VectorOfElements & a);
118 inline bool compatibleSizes(
unsigned int s,
const VectorOfElements & a)
120 return a.checkSizesCompatibility(s);
126 #endif // ACLVECTORELEMENTSDEF_H