proxygen
traits.h File Reference
#include <functional>
#include <type_traits>
#include <folly/experimental/pushmi/detail/functional.h>

Go to the source code of this file.

Classes

struct  folly::pushmi::detail::bools<... >
 
struct  folly::pushmi::typelist<... >
 
struct  folly::pushmi::detail::is_< typename, class >
 
struct  folly::pushmi::detail::is_< C< Ts... >, C >
 
struct  folly::pushmi::detail::as_const_fn
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::pushmi
 
 folly::pushmi::detail
 

Macros

#define PUSHMI_NOEXCEPT_AUTO(...)   noexcept(noexcept(static_cast<decltype((__VA_ARGS__))>(__VA_ARGS__)))\
 
#define PUSHMI_NOEXCEPT_RETURN(...)
 

Typedefs

template<class... >
using folly::pushmi::void_t = void
 
template<class T >
using folly::pushmi::remove_cvref_t = std::remove_cv_t< std::remove_reference_t< T >>
 
template<bool B, class T = void>
using folly::pushmi::detail::requires_ = std::enable_if_t< B, T >
 

Functions

template<std::size_t N>
constexpr int folly::pushmi::detail::sum_impl (int const (&rgi)[N], int i=0, int state=0) noexcept
 
template<int... Is>
constexpr int folly::pushmi::detail::sum_impl () noexcept
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class...Args)(concept True)(Args...), true)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, template< class... > class C)(concept Valid)(T, C), True< C< T > >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, template< class... > class Trait, class...Args)(concept Satisfies)(T, Trait, Args...), static_cast< bool >(Trait< T >::type::value))
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, class U) concept Same, PUSHMI_PP_IS_SAME(T, U)&&PUSHMI_PP_IS_SAME(U, T))
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(bool...Bs)(concept And)(Bs...), and_v< Bs... >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(bool...Bs)(concept Or)(Bs...), or_v< Bs... >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Object, requires(T *p)(*p, implicitly_convertible_to< const volatile void * >(p)))
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, class...Args)(concept Constructible)(T, Args...),)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept MoveConstructible, Constructible< T, T >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class From, class To) concept ConvertibleTo, requires(From(&f)())(static_cast< To >(f()))&&std::is_convertible< From, To >::value)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class A, class B) concept DerivedFrom, __is_base_of(B, A))
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class A) concept Decayed, Same< A, std::decay_t< A >>)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, class U) concept Assignable, requires(T t, U &&u)(t=(U &&) u, requires_< Same< decltype(t=(U &&) u), T >>)&&Same< T, T & >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept EqualityComparable, requires(remove_cvref_t< T > const &t)(implicitly_convertible_to< bool >(t==t), implicitly_convertible_to< bool >(t!=t)))
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept SemiMovable, Object< T > &&Constructible< T, T > &&ConvertibleTo< T, T >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Movable, SemiMovable< T > &&Assignable< T &, T >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Copyable, Movable< T > &&Assignable< T &, const T & > &&ConvertibleTo< const T &, T >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Semiregular, Copyable< T > &&Constructible< T >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Regular, Semiregular< T > &&EqualityComparable< T >)
 

Variables

template<bool... Bs>
PUSHMI_INLINE_VAR constexpr bool folly::pushmi::and_v
 
template<bool... Bs>
PUSHMI_INLINE_VAR constexpr bool folly::pushmi::or_v
 
template<int... Is>
PUSHMI_INLINE_VAR constexpr int folly::pushmi::sum_v = detail::sum_impl<Is...>()
 
template<typename T , template< typename... > class C>
constexpr bool folly::pushmi::detail::is_v = is_<T, C>::value
 
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::detail::as_const_fn folly::pushmi::detail::as_const
 

Macro Definition Documentation

#define PUSHMI_NOEXCEPT_AUTO (   ...)    noexcept(noexcept(static_cast<decltype((__VA_ARGS__))>(__VA_ARGS__)))\

Definition at line 23 of file traits.h.

#define PUSHMI_NOEXCEPT_RETURN (   ...)
Value:
PUSHMI_NOEXCEPT_AUTO(__VA_ARGS__) {\
return (__VA_ARGS__);\
}\
#define PUSHMI_NOEXCEPT_AUTO(...)
Definition: traits.h:23

Definition at line 26 of file traits.h.