GDAL
cpl_noncopyablevector.h
1/******************************************************************************
2 *
3 * Project: CPL
4 * Purpose: Implementation of a std::vector<> without copy capabilities
5 * Author: Even Rouault <even dot rouault at spatialys.com>
6 *
7 ******************************************************************************
8 * Copyright (c) 2022, Even Rouault <even dot rouault at spatialys.com>
9 *
10 * SPDX-License-Identifier: MIT
11 ****************************************************************************/
12
13#ifndef CPL_NONCOPYABLEVECOTR_H_INCLUDED
14#define CPL_NONCOPYABLEVECOTR_H_INCLUDED
15
16#include <vector>
17
18namespace cpl
19{
20
22template <class T> struct NonCopyableVector : public std::vector<T>
23{
27 explicit inline NonCopyableVector(size_t siz = 0) : std::vector<T>(siz)
28 {
29 }
30
33
36
37 private:
38 NonCopyableVector(const NonCopyableVector &) = delete;
40};
41
42} // namespace cpl
43
44#endif // CPL_NONCOPYABLEVECOTR_H_INCLUDED
Derived class of std::vector<> without copy capabilities.
Definition: cpl_noncopyablevector.h:23
NonCopyableVector(size_t siz=0)
Constructor.
Definition: cpl_noncopyablevector.h:27
NonCopyableVector(NonCopyableVector &&)=default
Move constructor.
NonCopyableVector & operator=(NonCopyableVector &&)=default
Move assignment operator.