CMS 3D CMS Logo

EZMgrFL.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOGEOMETRY_EZMGRFL_H
2 #define GEOMETRY_CALOGEOMETRY_EZMGRFL_H 1
3 
4 #include <vector>
5 #include <cassert>
6 
7 template <class T>
8 class EZMgrFL {
9 public:
10  typedef std::vector<T> VecType;
11  typedef typename VecType::iterator iterator;
12  typedef typename VecType::const_iterator const_iterator;
13  typedef typename VecType::reference reference;
14  typedef typename VecType::const_reference const_reference;
15  typedef typename VecType::value_type value_type;
16  typedef typename VecType::size_type size_type;
17 
19  m_vec.resize(0);
20  assert(subSize > 0);
21  assert(vecSize > 0);
22  assert(0 == m_vec.capacity());
23  }
24 
25  iterator reserve() { return assign(); }
26  iterator resize() { return assign(); }
27 
28  iterator assign(const T& t = T()) {
29  assert((m_vec.size() + m_subSize) <= m_vecSize);
30  if (0 == m_vec.capacity()) {
31  m_vec.reserve(m_vecSize);
32  assert(m_vecSize == m_vec.capacity());
33  }
34  for (size_type i(0); i != m_subSize; ++i) {
35  m_vec.emplace_back(t);
36  }
37  return (m_vec.end() - m_subSize);
38  }
39 
40  size_type subSize() const { return m_subSize; }
41  size_type size() const { return m_vec.size(); }
42 
43  size_type vecSize() const { return m_vec.size(); }
44 
45  EZMgrFL() = delete;
46  EZMgrFL(const EZMgrFL&) = delete;
47  EZMgrFL& operator=(const EZMgrFL&) = delete;
48 
49 private:
53 };
54 
55 #endif
VecType::const_reference const_reference
Definition: EZMgrFL.h:14
size_type subSize() const
Definition: EZMgrFL.h:40
EZMgrFL(size_type vecSize, size_type subSize)
Definition: EZMgrFL.h:18
VecType::size_type size_type
Definition: EZMgrFL.h:16
EZMgrFL()=delete
EZMgrFL & operator=(const EZMgrFL &)=delete
assert(be >=bs)
VecType::value_type value_type
Definition: EZMgrFL.h:15
uint16_t size_type
size_type size() const
Definition: EZMgrFL.h:41
VecType::iterator iterator
Definition: EZMgrFL.h:11
Definition: EZMgrFL.h:8
const size_type m_subSize
Definition: EZMgrFL.h:51
std::vector< T > VecType
Definition: EZMgrFL.h:10
iterator assign(const T &t=T())
Definition: EZMgrFL.h:28
const size_type m_vecSize
Definition: EZMgrFL.h:50
size_type vecSize() const
Definition: EZMgrFL.h:43
VecType m_vec
Definition: EZMgrFL.h:52
VecType::reference reference
Definition: EZMgrFL.h:13
iterator reserve()
Definition: EZMgrFL.h:25
VecType::const_iterator const_iterator
Definition: EZMgrFL.h:12
long double T
iterator resize()
Definition: EZMgrFL.h:26