Horizon
Loading...
Searching...
No Matches
Classes | Typedefs
semiregular_box.hpp File Reference
#include <type_traits>
#include <utility>
#include <meta/meta.hpp>
#include <concepts/concepts.hpp>
#include <range/v3/range_fwd.hpp>
#include <range/v3/functional/concepts.hpp>
#include <range/v3/functional/invoke.hpp>
#include <range/v3/functional/reference_wrapper.hpp>
#include <range/v3/utility/get.hpp>
#include <range/v3/utility/in_place.hpp>
#include <range/v3/detail/prologue.hpp>
#include <range/v3/detail/epilogue.hpp>

Go to the source code of this file.

Classes

struct  ranges::semiregular_box< T >
 
struct  ranges::semiregular_box< T & >
 
struct  ranges::semiregular_box< T && >
 

Typedefs

template<typename T >
using ranges::semiregular_box_t = meta::if_c<(bool) semiregular< T >, T, semiregular_box< T > >
 
template<typename T , bool IsConst = false>
using ranges::semiregular_box_ref_or_val_t = meta::if_c<(bool) semiregular< T >, meta::if_c< IsConst||std::is_empty< T >::value, T, reference_wrapper< T > >, reference_wrapper< meta::if_c< IsConst, semiregular_box< T > const, semiregular_box< T > > > >