repr 0.1
Reconstructable string representations and more
Loading...
Searching...
No Matches
librepr::RefTuple< Types > Class Template Reference

#include <reftuple.h>

Collaboration diagram for librepr::RefTuple< Types >:
[legend]

Public Types

using types = TypeList< Types... >
 

Public Member Functions

template<detail::ref_convertible_to< Types >... U>
requires (sizeof...(U) != 1 || !(std::same_as<RefTuple, std::remove_cvref_t<U>> || ...))
 RefTuple (U &&... values) noexcept((noexcept(detail::convert_ref< Types >(std::forward< U >(values))) &&...))
 
 RefTuple (RefTuple &&) noexcept=default
 
 RefTuple (RefTuple const &) noexcept=default
 
RefTupleoperator= (RefTuple &&) noexcept=default
 
RefTupleoperator= (RefTuple const &) noexcept=default
 
 ~RefTuple ()=default
 
template<std::size_t Idx>
requires (Idx < sizeof...(Types))
constexpr decltype(auto) get () const noexcept
 

Static Public Attributes

static constexpr auto size = sizeof...(Types)
 

Member Typedef Documentation

◆ types

template<typename... Types>
using librepr::RefTuple< Types >::types = TypeList<Types...>

Constructor & Destructor Documentation

◆ RefTuple() [1/3]

template<typename... Types>
template<detail::ref_convertible_to< Types >... U>
requires (sizeof...(U) != 1 || !(std::same_as<RefTuple, std::remove_cvref_t<U>> || ...))
librepr::RefTuple< Types >::RefTuple ( U &&...  values)
inlineexplicitnoexcept

◆ RefTuple() [2/3]

template<typename... Types>
librepr::RefTuple< Types >::RefTuple ( RefTuple< Types > &&  )
defaultnoexcept

◆ RefTuple() [3/3]

template<typename... Types>
librepr::RefTuple< Types >::RefTuple ( RefTuple< Types > const )
defaultnoexcept

◆ ~RefTuple()

template<typename... Types>
librepr::RefTuple< Types >::~RefTuple ( )
default

Member Function Documentation

◆ get()

template<typename... Types>
template<std::size_t Idx>
requires (Idx < sizeof...(Types))
constexpr decltype(auto) librepr::RefTuple< Types >::get ( ) const
inlineconstexprnoexcept

◆ operator=() [1/2]

template<typename... Types>
RefTuple & librepr::RefTuple< Types >::operator= ( RefTuple< Types > &&  )
defaultnoexcept

◆ operator=() [2/2]

template<typename... Types>
RefTuple & librepr::RefTuple< Types >::operator= ( RefTuple< Types > const )
defaultnoexcept

Member Data Documentation

◆ size

template<typename... Types>
constexpr auto librepr::RefTuple< Types >::size = sizeof...(Types)
staticconstexpr

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