1 #ifndef GAUDIKERNEL_ANYDATAWRAPPER_H 2 #define GAUDIKERNEL_ANYDATAWRAPPER_H 6 #include "boost/optional.hpp" 12 #if __cplusplus < 201703L 14 constexpr
auto size(
const C&
c ) noexcept( noexcept(
c.size() ) ) -> decltype(
c.size() )
19 template <
typename T, std::
size_t N>
28 template <
typename T,
typename... Args>
29 constexpr
auto size(
const T&, Args&&... ) noexcept
31 static_assert(
sizeof...( Args ) == 0,
"No extra args please" );
39 virtual boost::optional<std::size_t>
size()
const = 0;
51 const T&
getData()
const {
return m_data; }
54 boost::optional<std::size_t>
size()
const override 58 return size( m_data );
constexpr auto size(const T &, Args &&...) noexcept
boost::optional< std::size_t > size() const override
const T & getData() const
AnyDataWrapper(AnyDataWrapper &&other)
constexpr auto size(const C &c) noexcept(noexcept(c.size())) -> decltype(c.size())
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
A DataObject is the base class of any identifiable object on any data store.