RTC Toolkit 5.1.0
Loading...
Searching...
No Matches
recordingTypeTraits.hpp
Go to the documentation of this file.
1
12#ifndef RTCTK_COMPONENTFRAMEWORK_RECORDINGTYPETRAITS_HPP
13#define RTCTK_COMPONENTFRAMEWORK_RECORDINGTYPETRAITS_HPP
14
15#include <array>
16#include <cstdint>
17#include <gsl/span>
20#include <type_traits>
21
23
27template <typename T>
28struct AsSpan {};
29
30template <typename T, size_t Size>
31struct AsSpan<std::array<T, Size>> {
32 typedef gsl::span<T, static_cast<decltype(gsl::dynamic_extent)>(Size)> TYPE;
33};
34
35template <typename T, size_t Size>
36struct AsSpan<const std::array<T, Size>> {
37 typedef gsl::span<const T, static_cast<decltype(gsl::dynamic_extent)>(Size)> TYPE;
38};
39
40template <typename T, typename Allocator>
41struct AsSpan<std::vector<T, Allocator>> {
42 typedef gsl::span<T> TYPE;
43};
44
45template <typename T, typename Allocator>
47 typedef gsl::span<T> TYPE;
48};
49
50template <typename T>
51using AsSpanT = typename AsSpan<T>::TYPE;
52
56template <typename T>
58 : std::
59 conjunction<IsSpanType<T>, IsDynamicSpanType<T>, IsVectorType<T>, IsMatrixBufferType<T>> {
60};
61
65template <typename T>
66inline constexpr bool IS_SPAN_CONVERTIBLE = IsSpanConvertible<T>::value;
67
68} // namespace rtctk::componentFramework
69
70#endif // RTCTK_COMPONENTFRAMEWORK_RECORDINGTYPETRAITS_HPP
A buffer class representing 2D matrix data.
Definition matrixBuffer.hpp:28
Declaration of the MatrixBuffer template class used in APIs.
Definition commandReplier.cpp:22
typename AsSpan< T >::TYPE AsSpanT
Definition recordingTypeTraits.hpp:51
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
gsl::span< T > TYPE
Definition recordingTypeTraits.hpp:47
gsl::span< const T, static_cast< decltype(gsl::dynamic_extent)>(Size)> TYPE
Definition recordingTypeTraits.hpp:37
gsl::span< T, static_cast< decltype(gsl::dynamic_extent)>(Size)> TYPE
Definition recordingTypeTraits.hpp:32
gsl::span< T > TYPE
Definition recordingTypeTraits.hpp:42
Gets the span type for converting type T to a span.
Definition recordingTypeTraits.hpp:28
Type trait to check if a type can be converted to a Span using AsSpan/ToSpan.
Definition recordingTypeTraits.hpp:59
Provides useful mechanisms to test various type traits.