File indexing completed on 2026-05-27 07:24:04
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011
0012 #include "detray/definitions/detail/qualifiers.hpp"
0013 #include "detray/utils/ranges/ranges.hpp"
0014
0015 namespace detray::ranges {
0016
0017
0018
0019
0020
0021
0022 template <typename value_t>
0023 class empty_view : public detray::ranges::view_interface<empty_view<value_t>> {
0024 public:
0025
0026 using iterator_t = value_t*;
0027
0028
0029 DETRAY_HOST_DEVICE
0030 static constexpr value_t* begin() noexcept { return nullptr; }
0031
0032
0033 DETRAY_HOST_DEVICE
0034 static constexpr value_t* end() noexcept { return nullptr; }
0035
0036
0037 DETRAY_HOST_DEVICE
0038 static constexpr value_t* data() noexcept { return nullptr; }
0039
0040
0041 DETRAY_HOST_DEVICE
0042 static constexpr std::size_t size() noexcept { return 0; }
0043
0044
0045 DETRAY_HOST_DEVICE
0046 static constexpr bool empty() noexcept { return true; }
0047
0048
0049
0050 DETRAY_HOST_DEVICE
0051 constexpr value_t front() const noexcept = delete;
0052
0053 DETRAY_HOST_DEVICE
0054 constexpr value_t back() const noexcept = delete;
0055
0056 DETRAY_HOST_DEVICE
0057 constexpr value_t operator[](const dindex) const noexcept = delete;
0058
0059 };
0060
0061 namespace views {
0062
0063 template <typename value_t>
0064 using empty = empty_view<value_t>;
0065
0066 }
0067
0068 template <class T>
0069 inline constexpr bool enable_borrowed_range<detray::ranges::empty_view<T>> =
0070 true;
0071
0072 }