MFEM v4.10.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::future::tuple< T > Struct Template Reference

This is a class that mimics most of std::tuple's interface, except that it is usable in CUDA kernels and admits some arithmetic operator overloads. More...

#include <tuple.hpp>

Inheritance diagram for mfem::future::tuple< T >:
[legend]
Collaboration diagram for mfem::future::tuple< T >:
[legend]

Public Types

using base_type = detail::tuple_impl<std::index_sequence_for<T...>, T...>
 

Public Member Functions

MFEM_HOST_DEVICE constexpr tuple ()=default
 Default constructor.
 
template<typename... U, typename = detail::enable_elementwise_t<tuple, U...>>
MFEM_HOST_DEVICE constexpr tuple (U &&... args)
 Construct tuple from values.
 
MFEM_HOST_DEVICE constexpr tuple (const tuple &)=default
 Copy constructor.
 
MFEM_HOST_DEVICE constexpr tuple (tuple &&)=default
 Move constructor.
 
MFEM_HOST_DEVICE constexpr tupleoperator= (const tuple &)=default
 Copy assignment operator.
 
MFEM_HOST_DEVICE constexpr tupleoperator= (tuple &&)=default
 Move assignment operator.
 

Detailed Description

template<typename... T>
struct mfem::future::tuple< T >

This is a class that mimics most of std::tuple's interface, except that it is usable in CUDA kernels and admits some arithmetic operator overloads.

Template Parameters
Tthe types stored in the tuple

See https://en.cppreference.com/w/cpp/utility/tuple for more information about std::tuple.

Definition at line 149 of file tuple.hpp.

Member Typedef Documentation

◆ base_type

template<typename... T>
using mfem::future::tuple< T >::base_type = detail::tuple_impl<std::index_sequence_for<T...>, T...>

Definition at line 151 of file tuple.hpp.

Constructor & Destructor Documentation

◆ tuple() [1/4]

template<typename... T>
MFEM_HOST_DEVICE constexpr mfem::future::tuple< T >::tuple ( )
constexprdefault

Default constructor.

◆ tuple() [2/4]

template<typename... T>
template<typename... U, typename = detail::enable_elementwise_t<tuple, U...>>
MFEM_HOST_DEVICE constexpr mfem::future::tuple< T >::tuple ( U &&... args)
inlineconstexpr

Construct tuple from values.

Parameters
argsThe values to store
Note
this constructor is deliberately not explicit, so that the copy-list-initialization forms that worked when tuple was an aggregate ("tuple<A,B> t = {a,b};", "return {a,b};", passing "{a,b}" to a function) keep working.

Definition at line 169 of file tuple.hpp.

◆ tuple() [3/4]

template<typename... T>
MFEM_HOST_DEVICE constexpr mfem::future::tuple< T >::tuple ( const tuple< T > & )
constexprdefault

Copy constructor.

◆ tuple() [4/4]

template<typename... T>
MFEM_HOST_DEVICE constexpr mfem::future::tuple< T >::tuple ( tuple< T > && )
constexprdefault

Move constructor.

Member Function Documentation

◆ operator=() [1/2]

template<typename... T>
MFEM_HOST_DEVICE constexpr tuple & mfem::future::tuple< T >::operator= ( const tuple< T > & )
constexprdefault

Copy assignment operator.

◆ operator=() [2/2]

template<typename... T>
MFEM_HOST_DEVICE constexpr tuple & mfem::future::tuple< T >::operator= ( tuple< T > && )
constexprdefault

Move assignment operator.


The documentation for this struct was generated from the following file: