core::v2::impl Namespace Reference

Classes

struct  class_of
 
struct  class_of< Signature T::* >
 
union  discriminate
 
union  discriminate< T, Ts... >
 
union  discriminate<>
 
struct  invoke_of
 
struct  invoke_of< true, Args... >
 
struct  is_noexcept_swappable_with
 
struct  is_nothrow_swappable
 
struct  is_swappable
 
struct  deduce< is_swappable_with< T, U >, is_swappable_with< U, T > >>
 
struct  is_swappable_with
 
struct  make_detect
 
struct  make_detect< T, meta::deduce< U< Args... > >, U, Args... >
 
struct  murmur
 
struct  murmur< 4 >
 
struct  murmur< 8 >
 
struct  undefined
 

Typedefs

template
<
class
T
>
using adl_begin_t = decltype(begin(::std::declval< T >()))
 
template
<
class
T
>
using adl_end_t = decltype(end(::std::declval< T >()))
 
template
<
class
T
>
using class_of_t = typename class_of< T >::type
 
using data_type = add_pointer_t< void >
 
template
<
class
T
>
using decay_t = typename ::std::decay< T >::type
 
template<bool B, class T = void>
using enable_if_t = typename ::std::enable_if< B, T >::type
 
template
<
class
T
>
using remove_reference_t = typename ::std::remove_reference< T >::type
 

Functions

template
<
class
T
>
adl_begin_t< T > adl_begin (T &&t)
 
template
<
class
T
>
adl_end_t< T > adl_end (T &&t)
 
template
<
class
InputIt
1
,
class
InputIt
2
,
class
Predicate
>
bool equal (range< InputIt1 > r1, range< InputIt2 > r2, Predicate &&p, ::std::random_access_iterator_tag, ::std::random_access_iterator_tag)
 
template
<
class
InputIt
1
,
class
InputIt
2
,
class
Predicate
>
bool equal (range< InputIt1 > r1, range< InputIt2 > r2, Predicate &&p, ::std::input_iterator_tag, ::std::input_iterator_tag)
 
template<class... Args>
constexpr undefined INVOKE (undefined, Args &&...) noexcept
 
template<class Functor , class... Args>
constexpr auto INVOKE (Functor &&f, Args &&... args) -> enable_if_t< not ::std::is_member_pointer< decay_t< Functor >>::value, decltype(pass< Functor >(f)(pass< Args >(args)...)) >
 
template<class Functor , class... Args>
auto INVOKE (Functor &&f, Args &&... args) -> enable_if_t< ::std::is_member_pointer< decay_t< Functor >>::value, decltype(::std::mem_fn(pass< Functor >(f))(pass< Args >(args)...)) >
 
template
<
class
T
>
constexpr T && pass (remove_reference_t< T > &t) noexcept
 
template
<
class
T
>
constexpr T && pass (remove_reference_t< T > &&t) noexcept
 

Typedef Documentation

◆ adl_begin_t

using adl_begin_t = decltype(begin(::std::declval<T>()))

Definition at line 33 of file range.hpp.

◆ adl_end_t

using adl_end_t = decltype(end(::std::declval<T>()))

Definition at line 34 of file range.hpp.

◆ class_of_t

using class_of_t = typename class_of<T>::type

Definition at line 50 of file internal.hpp.

◆ data_type

using data_type = add_pointer_t<void>

Definition at line 35 of file any.hpp.

◆ decay_t

using decay_t = typename ::std::decay<T>::type

Definition at line 51 of file internal.hpp.

◆ enable_if_t

using enable_if_t = typename ::std::enable_if<B, T>::type

Definition at line 55 of file internal.hpp.

◆ remove_reference_t

using remove_reference_t = typename ::std::remove_reference<T>::type

Definition at line 53 of file internal.hpp.

Function Documentation

◆ adl_begin()

adl_begin_t<T> core::v2::impl::adl_begin ( T &&  t)

Definition at line 37 of file range.hpp.

Referenced by range< Iterator >::range().

◆ adl_end()

adl_end_t<T> core::v2::impl::adl_end ( T &&  t)

Definition at line 43 of file range.hpp.

Referenced by range< Iterator >::range().

◆ equal() [1/2]

bool core::v2::impl::equal ( range< InputIt1 >  r1,
range< InputIt2 >  r2,
Predicate &&  p,
::std::random_access_iterator_tag  ,
::std::random_access_iterator_tag   
)

Definition at line 28 of file algorithm.hpp.

References core::v2::equal(), and range< Iterator >::size().

Referenced by core::v2::equal().

◆ equal() [2/2]

bool core::v2::impl::equal ( range< InputIt1 >  r1,
range< InputIt2 >  r2,
Predicate &&  p,
::std::input_iterator_tag  ,
::std::input_iterator_tag   
)

◆ INVOKE() [1/3]

constexpr undefined core::v2::impl::INVOKE ( undefined  ,
Args &&  ... 
)
noexcept

Definition at line 133 of file internal.hpp.

◆ INVOKE() [2/3]

constexpr auto core::v2::impl::INVOKE ( Functor &&  f,
Args &&...  args 
) -> enable_if_t< not ::std::is_member_pointer<decay_t<Functor>>::value, decltype(pass<Functor>(f)(pass<Args>(args)...)) >

Definition at line 138 of file internal.hpp.

◆ INVOKE() [3/3]

auto core::v2::impl::INVOKE ( Functor &&  f,
Args &&...  args 
) -> enable_if_t< ::std::is_member_pointer<decay_t<Functor>>::value, decltype(::std::mem_fn(pass<Functor>(f))(pass<Args>(args)...)) >

Definition at line 144 of file internal.hpp.

◆ pass() [1/2]

constexpr T&& core::v2::impl::pass ( remove_reference_t< T > &  t)
noexcept

Definition at line 115 of file internal.hpp.

◆ pass() [2/2]

constexpr T&& core::v2::impl::pass ( remove_reference_t< T > &&  t)
noexcept

Definition at line 120 of file internal.hpp.