tuple.h File Reference
#include <tuple>
Include dependency graph for tuple.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  mpqc::utility::recursive_tuple_size< T, std::enable_if_t< std::is_fundamental_v< T > > >
 
struct  mpqc::utility::recursive_tuple_size< T & >
 
struct  mpqc::utility::recursive_tuple_size< const T >
 
struct  mpqc::utility::recursive_tuple_size< std::tuple<> >
 
struct  mpqc::utility::recursive_tuple_size< std::tuple< FirstType, RestOfTypes... > >
 
struct  mpqc::utility::recursive_tuple_size< std::array< T, N > >
 
struct  mpqc::utility::recursive_tuple_size< std::pair< T1, T2 > >
 
struct  mpqc::utility::is_tuple< T >
 
struct  mpqc::utility::is_tuple< std::tuple< Ts... > >
 

Namespaces

 mpqc
 The top-level namespace for all Massively Parallel Quantum Chemistry package.
 
 mpqc::utility
 

Functions

template<typename T >
constexpr decltype(auto) mpqc::utility::as_tuple (T t)
 
template<typename... Ts>
constexpr decltype(auto) mpqc::utility::as_tuple (std::tuple< Ts... > t)
 
template<typename T >
constexpr decltype(auto) mpqc::utility::flatten (T t)
 
template<typename T >
constexpr decltype(auto) mpqc::utility::flatten (std::tuple< T > t)
 
template<typename... Ts, std::enable_if_t<!(is_tuple< Ts >::value||...), bool > = false>
constexpr decltype(auto) mpqc::utility::flatten (std::tuple< Ts... > t)
 
template<std::size_t... I, typename... Args>
auto mpqc::utility::make_tuple_of_refs_impl (std::index_sequence< I... > idxs, std::tuple< Args... > &t)
 
template<std::size_t... I, typename... Args>
auto mpqc::utility::make_tuple_of_refs_impl (std::index_sequence< I... > idxs, const std::tuple< Args... > &t)
 
template<typename... Args>
auto mpqc::utility::make_tuple_of_refs (std::tuple< Args... > &t)
 
template<typename... Args>
auto mpqc::utility::make_tuple_of_refs (const std::tuple< Args... > &t)
 
template<typename T , std::size_t N>
constexpr const std::array< T, N > & mpqc::utility::make_array (const std::array< T, N > &v)
 
template<typename T , std::size_t N1>
constexpr const std::array< T, N1 > & mpqc::utility::make_array (const std::tuple< const std::array< T, N1 > & > &v)
 
template<typename T , std::size_t N1, std::size_t N2>
constexpr std::array< T, N1+N2 > mpqc::utility::make_array (const std::tuple< const std::array< T, N1 > &, const std::array< T, N2 > & > &v)
 
template<std::size_t N1, typename T >
constexpr auto mpqc::utility::make_tuple_of_arrays (const std::array< T, N1 > &v)
 
template<std::size_t N1, std::size_t N2, typename T >
constexpr auto mpqc::utility::make_tuple_of_arrays (const std::array< T, N1+N2 > &v)
 

Variables

template<typename T >
constexpr std::size_t mpqc::utility::recursive_tuple_size_v = recursive_tuple_size<T>::value