Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
94 lines (73 loc) · 2.54 KB

File metadata and controls

94 lines (73 loc) · 2.54 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*---------------------------------------------------------------------------*\
*
* bitpit
*
* Copyright (C) 2015-2021 OPTIMAD engineering Srl
*
* -------------------------------------------------------------------------
* License
* This file is part of bitpit.
*
* bitpit is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License v3 (LGPL)
* as published by the Free Software Foundation.
*
* bitpit is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with bitpit. If not, see <http://www.gnu.org/licenses/>.
*
\*---------------------------------------------------------------------------*/
#ifndef __BITPIT_PIERCED_VECTOR_KERNEL_HPP__
#define __BITPIT_PIERCED_VECTOR_KERNEL_HPP__
#include <cassert>
#include "piercedKernel.hpp"
namespace bitpit {
class BasePiercedVectorKernel {
public:
virtual ~BasePiercedVectorKernel() = default;
protected:
BasePiercedVectorKernel();
};
/**
* \ingroup containers
*
* \brief Kernel of the pierced vector.
*/
template<typename id_t = long>
class PiercedVectorKernel : public BasePiercedVectorKernel,
public PiercedKernel<id_t> {
public:
// Methods that extract information on the ids contained in the kernel
std::size_t rawIndex(id_t id) const;
bool exists(id_t id) const;
// Dump and restore
using PiercedKernel<id_t>::dump;
using PiercedKernel<id_t>::restore;
protected:
// Constructors
using PiercedKernel<id_t>::PiercedKernel;
// Methods that modify the elements stored in the kernel
using PiercedKernel<id_t>::fillHead;
using PiercedKernel<id_t>::fillTail;
using PiercedKernel<id_t>::fillAfter;
using PiercedKernel<id_t>::fillBefore;
using PiercedKernel<id_t>::fillAppend;
using PiercedKernel<id_t>::fillHole;
using PiercedKernel<id_t>::fillInsert;
using PiercedKernel<id_t>::moveAfter;
using PiercedKernel<id_t>::moveBefore;
using PiercedKernel<id_t>::swap;
using PiercedKernel<id_t>::erase;
using PiercedKernel<id_t>::popBack;
// Methods that extract information about the elements of the kernel
using PiercedKernel<id_t>::back;
using PiercedKernel<id_t>::front;
};
}
// Include the implementation
#include "piercedVectorKernel.tpp"
#endif
Morty Proxy This is a proxified and sanitized view of the page, visit original site.