openMSX
Classes | Namespaces | Typedefs
semiregular.hh File Reference
#include <cstddef>
#include <optional>
#include <string>
#include <type_traits>
#include <utility>
Include dependency graph for semiregular.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sreg_impl::semiregular_move_assign< T >
 
struct  sreg_impl::semiregular_copy_assign< T >
 
struct  sreg_impl::semiregular< T >
 
struct  sreg_impl::semiregular< T & >
 
struct  sreg_impl::semiregular< T && >
 

Namespaces

namespace  sreg_impl
 

Typedefs

template<typename T >
using sreg_impl::semiregular_move_layer = std::conditional_t< std::is_move_assignable_v< T >, std::optional< T >, semiregular_move_assign< T > >
 
template<typename T >
using sreg_impl::semiregular_copy_layer = std::conditional_t< std::is_copy_assignable_v< T >, std::optional< T >, semiregular_copy_assign< T > >
 
template<typename T >
using semiregular_t = std::conditional_t< std::is_default_constructible_v< T > &&std::is_copy_assignable_v< T >, T, sreg_impl::semiregular< T > >
 

Typedef Documentation

◆ semiregular_t

template<typename T >
using semiregular_t = std::conditional_t<std::is_default_constructible_v<T> && std::is_copy_assignable_v<T>, T, sreg_impl::semiregular<T> >

Definition at line 175 of file semiregular.hh.