ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
empty.hpp
1// This file is part of the ACTS project.
2//
3// Copyright (C) 2016 CERN for the benefit of the ACTS project
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9#pragma once
10
11// Project include(s)
12#include "detray/definitions/detail/qualifiers.hpp"
13#include "detray/utils/ranges/ranges.hpp"
14
15namespace detray::ranges {
16
22template <typename value_t>
23class empty_view : public detray::ranges::view_interface<empty_view<value_t>> {
24 public:
26 using iterator_t = value_t*;
27
29 DETRAY_HOST_DEVICE
30 static constexpr value_t* begin() noexcept { return nullptr; }
31
33 DETRAY_HOST_DEVICE
34 static constexpr value_t* end() noexcept { return nullptr; }
35
37 DETRAY_HOST_DEVICE
38 static constexpr value_t* data() noexcept { return nullptr; }
39
41 DETRAY_HOST_DEVICE
42 static constexpr std::size_t size() noexcept { return 0; }
43
45 DETRAY_HOST_DEVICE
46 static constexpr bool empty() noexcept { return true; }
47
50 DETRAY_HOST_DEVICE
51 constexpr value_t front() const noexcept = delete;
52
53 DETRAY_HOST_DEVICE
54 constexpr value_t back() const noexcept = delete;
55
56 DETRAY_HOST_DEVICE
57 constexpr value_t operator[](const dindex) const noexcept = delete;
59};
60
61namespace views {
62
63template <typename value_t>
65
66} // namespace views
67
68template <class T>
69inline constexpr bool enable_borrowed_range<detray::ranges::empty_view<T>> =
70 true;
71
72} // namespace detray::ranges
Implements an empty view of a given type.
Definition empty.hpp:23
constexpr value_t front() const noexcept=delete
No value contained in view.
static constexpr std::size_t size() noexcept
Definition empty.hpp:42
value_t * iterator_t
Iterator category: bidirectional.
Definition empty.hpp:26
static constexpr bool empty() noexcept
Definition empty.hpp:46
static constexpr value_t * end() noexcept
Definition empty.hpp:34
static constexpr value_t * data() noexcept
Definition empty.hpp:38
static constexpr value_t * begin() noexcept
Definition empty.hpp:30
Defines a detray 'view'.
Definition ranges.hpp:190
unsigned int dindex
Default index type.
Definition indexing.hpp:18