12#include "detray/core/detail/compact_device_vector.hpp"
13#include "detray/definitions/detail/qualifiers.hpp"
14#include "detray/utils/tuple.hpp"
17#include <vecmem/containers/jagged_vector.hpp>
18#include <vecmem/containers/vector.hpp>
28template <
typename value_t, std::
size_t kDIM>
30using darray = std::array<value_t, kDIM>;
32template <
typename value_t>
36template <
typename value_t>
40template <
typename key_t,
typename value_t>
42using dmap = std::map<key_t, value_t>;
44template <
class... types>
49template <
template <
typename...>
class vector_t =
dvector>
59 template <
typename T, std::
size_t kDIM>
65template <
template <
typename...>
class vector_t =
dvector>
75 template <
typename T, std::
size_t kDIM>
99 static constexpr auto check(C*) ->
100 typename std::is_void<decltype(std::declval<C>().reserve(
101 std::declval<typename C::size_type>()))>::type;
106 static constexpr std::false_type check(...);
109 using type =
decltype(check<T>(
nullptr));
113 static constexpr bool value = type::value;
121DETRAY_HOST_DEVICE
void call_reserve(T& obj, std::size_t newsize) {
122 obj.reserve(newsize);
127DETRAY_HOST_DEVICE
void call_reserve(T& , std::size_t ) {
Detray include(s).
Definition array_operators.hpp:18
vecmem::vector< value_t > dvector
Vector container backed by vecmem.
Definition containers.hpp:34
vecmem::jagged_vector< value_t > djagged_vector
Jagged vector container backed by vecmem.
Definition containers.hpp:38
const_container_types<> const_host_container_types
Const-qualified host container policy based on vecmem vectors.
Definition containers.hpp:84
std::array< value_t, kDIM > darray
Fixed-size array container.
Definition containers.hpp:30
std::map< key_t, value_t > dmap
Ordered key-value map container.
Definition containers.hpp:42
detray::tuple< types... > dtuple
Tuple type used by detray storage and dispatch.
Definition containers.hpp:46
container_types<> host_container_types
Defining some common types Default host container policy based on vecmem vectors.
Definition containers.hpp:82
Bundle container type definitions.
Definition containers.hpp:66
dtuple< std::add_const_t< T >... > tuple_type
Tuple template used to combine component types.
Definition containers.hpp:73
vector_t< std::add_const_t< T > > vector_type
Vector template selected for this container policy.
Definition containers.hpp:69
darray< std::add_const_t< T >, kDIM > array_type
Fixed-size array template used for inline collections.
Definition containers.hpp:77
Bundle container type definitions.
Definition containers.hpp:50
vector_t< T > vector_type
Vector template selected for this container policy.
Definition containers.hpp:53
dtuple< T... > tuple_type
Tuple template used to combine component types.
Definition containers.hpp:57
darray< T, kDIM > array_type
Fixed-size array template used for inline collections.
Definition containers.hpp:61
Trait class to figure out if a given type has a reserve(...) function.
Definition containers.hpp:94
static constexpr bool value
Value of the check.
Definition containers.hpp:113
Default tuple type.
Definition tuple.hpp:26