sparrow
2.4.0
C++20 idiomatic APIs for the Apache Arrow Columnar Format
Toggle main menu visibility
Loading...
Searching...
No Matches
non_owning_dynamic_bitset.hpp
Go to the documentation of this file.
1
// Copyright 2024 Man Group Operations Limited
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#pragma once
16
17
#include "
sparrow/buffer/buffer.hpp
"
18
#include "
sparrow/buffer/dynamic_bitset/dynamic_bitset_base.hpp
"
19
20
namespace
sparrow
21
{
22
template
<std::
int
egral T, null_count_policy NCP = tracking_null_count<>>
23
class
non_owning_dynamic_bitset
:
public
dynamic_bitset_base
<buffer<T>*, NCP>
24
{
25
public
:
26
27
using
base_type
=
dynamic_bitset_base<buffer<T>
*, NCP>;
28
using
storage_type
=
typename
base_type::storage_type
;
29
using
block_type
=
typename
base_type::block_type
;
30
using
value_type
=
typename
base_type::value_type
;
31
using
size_type
=
typename
base_type::size_type
;
32
33
constexpr
explicit
non_owning_dynamic_bitset
(
buffer<T>
*
buffer
,
size_type
n);
34
constexpr
explicit
non_owning_dynamic_bitset
(
buffer<T>
*
buffer
,
size_type
n,
size_type
offset
);
35
constexpr
explicit
non_owning_dynamic_bitset
(
buffer<T>
*
buffer
,
size_type
n,
size_type
offset
,
size_type
null_count
)
36
requires
(NCP::track_null_count);
37
38
39
constexpr
~non_owning_dynamic_bitset
() =
default
;
40
constexpr
non_owning_dynamic_bitset
(
const
non_owning_dynamic_bitset
&) =
default
;
41
constexpr
non_owning_dynamic_bitset
(
non_owning_dynamic_bitset
&&) noexcept = default;
42
43
constexpr
non_owning_dynamic_bitset
& operator=(const
non_owning_dynamic_bitset
&) = default;
44
constexpr
non_owning_dynamic_bitset
& operator=(
non_owning_dynamic_bitset
&&) noexcept = default;
45
46
using
base_type
::
clear
;
47
using
base_type
::
emplace
;
48
using
base_type
::
erase
;
49
using
base_type
::
insert
;
50
using
base_type
::
pop_back
;
51
using
base_type
::
push_back
;
52
using
base_type
::
resize
;
53
};
54
55
template <
std
::integral T,
null_count_policy
NCP>
56
constexpr
non_owning_dynamic_bitset
<T, NCP>::
non_owning_dynamic_bitset
(
buffer
<T>*
buffer
,
size_type
n)
57
:
base_type
(
buffer
, n)
58
{
59
SPARROW_ASSERT_TRUE
(
buffer
!=
nullptr
);
60
}
61
62
template
<std::
int
egral T, null_count_policy NCP>
63
constexpr
non_owning_dynamic_bitset<T, NCP>::non_owning_dynamic_bitset
(
64
buffer<T>
*
buffer
,
65
size_type
n,
66
size_type
offset
67
)
68
:
base_type
(
buffer
, n,
offset
)
69
{
70
SPARROW_ASSERT_TRUE
(
buffer
!=
nullptr
);
71
}
72
73
template
<std::
int
egral T, null_count_policy NCP>
74
constexpr
non_owning_dynamic_bitset<T, NCP>::non_owning_dynamic_bitset
(
75
buffer<T>
*
buffer
,
76
size_type
n,
77
size_type
offset
,
78
size_type
null_count
79
)
80
requires
(NCP::track_null_count)
81
:
base_type
(
buffer
, n,
offset
,
null_count
)
82
{
83
SPARROW_ASSERT_TRUE
(
buffer
!=
nullptr
);
84
}
85
86
}
// namespace sparrow
buffer.hpp
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::block_type
typename storage_type_without_cvrefpointer::value_type block_type
Definition
dynamic_bitset_base.hpp:78
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::storage_type
buffer< T > * storage_type
Definition
dynamic_bitset_base.hpp:75
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::buffer
constexpr const storage_type_without_cvrefpointer & buffer() const noexcept
Definition
dynamic_bitset_base.hpp:310
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::size_type
typename storage_type_without_cvrefpointer::size_type size_type
Definition
dynamic_bitset_base.hpp:83
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::dynamic_bitset_base
constexpr dynamic_bitset_base(storage_type buffer, size_type size)
Definition
dynamic_bitset_base.hpp:877
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::value_type
bool value_type
Definition
dynamic_bitset_base.hpp:80
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::null_count
constexpr size_type null_count() const noexcept
Definition
dynamic_bitset_base.hpp:626
sparrow::dynamic_bitset_base< buffer< T > *, tracking_null_count<> >::offset
constexpr size_type offset() const noexcept
Definition
dynamic_bitset_base.hpp:612
sparrow::non_owning_dynamic_bitset< uint8_t >::value_type
typename base_type::value_type value_type
Definition
non_owning_dynamic_bitset.hpp:30
sparrow::non_owning_dynamic_bitset::non_owning_dynamic_bitset
constexpr non_owning_dynamic_bitset(buffer< T > *buffer, size_type n, size_type offset, size_type null_count)
Definition
non_owning_dynamic_bitset.hpp:74
sparrow::non_owning_dynamic_bitset::~non_owning_dynamic_bitset
constexpr ~non_owning_dynamic_bitset()=default
sparrow::non_owning_dynamic_bitset< uint8_t >::base_type
dynamic_bitset_base< buffer< T > *, tracking_null_count<> > base_type
Definition
non_owning_dynamic_bitset.hpp:27
sparrow::non_owning_dynamic_bitset< uint8_t >::emplace
constexpr iterator emplace(const_iterator pos, value_type value)
sparrow::non_owning_dynamic_bitset::non_owning_dynamic_bitset
constexpr non_owning_dynamic_bitset(buffer< T > *buffer, size_type n, size_type offset)
Definition
non_owning_dynamic_bitset.hpp:63
sparrow::non_owning_dynamic_bitset< uint8_t >::size_type
typename base_type::size_type size_type
Definition
non_owning_dynamic_bitset.hpp:31
sparrow::non_owning_dynamic_bitset< uint8_t >::insert
constexpr iterator insert(const_iterator pos, value_type value)
sparrow::non_owning_dynamic_bitset< uint8_t >::push_back
constexpr void push_back(value_type value)
sparrow::non_owning_dynamic_bitset::non_owning_dynamic_bitset
constexpr non_owning_dynamic_bitset(buffer< T > *buffer, size_type n)
Definition
non_owning_dynamic_bitset.hpp:56
sparrow::non_owning_dynamic_bitset< uint8_t >::resize
constexpr void resize(size_type n, value_type b=false)
sparrow::non_owning_dynamic_bitset< uint8_t >::clear
constexpr void clear() noexcept
sparrow::non_owning_dynamic_bitset< uint8_t >::storage_type
typename base_type::storage_type storage_type
Definition
non_owning_dynamic_bitset.hpp:28
sparrow::non_owning_dynamic_bitset::non_owning_dynamic_bitset
constexpr non_owning_dynamic_bitset(non_owning_dynamic_bitset &&) noexcept=default
sparrow::non_owning_dynamic_bitset< uint8_t >::pop_back
constexpr void pop_back()
sparrow::non_owning_dynamic_bitset< uint8_t >::block_type
typename base_type::block_type block_type
Definition
non_owning_dynamic_bitset.hpp:29
sparrow::non_owning_dynamic_bitset::non_owning_dynamic_bitset
constexpr non_owning_dynamic_bitset(const non_owning_dynamic_bitset &)=default
sparrow::non_owning_dynamic_bitset< uint8_t >::erase
constexpr iterator erase(const_iterator pos)
sparrow::null_count_policy
Concept that checks if a type is a valid null count policy.
Definition
null_count_policy.hpp:233
SPARROW_ASSERT_TRUE
#define SPARROW_ASSERT_TRUE(expr__)
Definition
contracts.hpp:209
dynamic_bitset_base.hpp
sparrow
Definition
array.hpp:21
std
Extensions to the C++ standard library.
Definition
float16_t.hpp:1916
sparrow
buffer
dynamic_bitset
non_owning_dynamic_bitset.hpp
Generated by
1.17.0