Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
tuple.hpp File Reference

Classes

struct  mundy::tuple< Elements >
 A simple std::tuple-like class that can be used in device code with similar sementics to std::tuple (e.g., get<N>(), get<T>(), tuple_cat, etc.). All elements must be copyable but not necessarily moveable or default constructible. The tuple itself is copyable, moveable, and default constructible if all of its elements are copyable, moveable, and default constructible (respectively). More...
struct  mundy::tuple_size< tuple< Es... > >
struct  mundy::tuple_element< I, tuple< Es... > >

Namespaces

namespace  mundy

Typedefs

template<size_t I, class T>
using mundy::tuple_element_t = typename tuple_element<I, T>::type
template<typename... input_t>
using mundy::tuple_cat_t = decltype(tuple_cat(std::declval<input_t>()...))
 The type of the concatenation of two tuples.

Functions

template<size_t Idx, class... Args>
constexpr auto & mundy::get (tuple< Args... > &vals)
 Get the I'th element of a tuple.
template<size_t Idx, class... Args>
constexpr const auto & mundy::get (const tuple< Args... > &vals)
template<class T, class... Args>
constexpr auto & mundy::get (tuple< Args... > &vals)
 Get the element of a tuple with the given type T (errors if T is not unique).
template<class T, class... Args>
constexpr const auto & mundy::get (const tuple< Args... > &vals)
template<class... FirstElements, class... SecondElements>
constexpr auto mundy::tuple_cat (const tuple< FirstElements... > &first, const tuple< SecondElements... > &second)
 Concatenate two tuples into a single tuple containing all elements of both.
template<class... Elements>
constexpr auto mundy::make_tuple (Elements... vals)
 Make a tuple from a list of values.

Variables

template<class T>
static constexpr size_t mundy::tuple_size_v = tuple_size<T>::value