4.4.1
Freundlich's C++ toolkit
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Variables
fcppt::mpl Namespace Reference

Namespaces

namespace  list
 
namespace  map
 
namespace  set
 

Classes

struct  lambda
 The lambda type. More...
 

Typedefs

template<fcppt::mpl::integral_concept T1, fcppt::mpl::integral_concept T2>
using add = typename fcppt::mpl::detail::add< T1, T2 >::type
 Adds two integral constants.Let T1 = std::integral_constant<T,V_1> and T2 = std::integral_constant<T,V_2>. Then the result is std::integral_constant<T,V_1 + V_2>.
 
template<fcppt::mpl::lambda_concept L, typename... Args>
using apply = typename fcppt::mpl::detail::apply< L, Args... >::type
 Calls a lambda.
 
template<std::size_t Arg>
using arg = typename fcppt::mpl::detail::arg< Arg - 1U >::type
 A lambda that returns an argument in a specific position.
 
template<fcppt::mpl::lambda_concept L, fcppt::mpl::lambda_concept ... Ls>
using bind = typename fcppt::mpl::detail::bind< L, Ls... >::type
 Function composition on multiple lambdas.
 
template<typename T >
using constant = typename fcppt::mpl::detail::constant< T >::type
 The constant lambda.
 
template<fcppt::mpl::integral_concept T>
using dec = typename fcppt::mpl::detail::dec< T >::type
 Subtracts one from an integral constant.Let T = std::integral_constant<U,V>. Then the result is std::integral_constant<U,V-->.
 
template<typename Function >
using function_args = typename fcppt::mpl::detail::function_args< Function >::type
 The argument types of a function as a list.
 
template<fcppt::mpl::integral_concept T1, fcppt::mpl::integral_concept T2>
using greater = typename fcppt::mpl::detail::greater< T1, T2 >::type
 Checks if one integral constant is greater than another.Let T1 = std::integral_constant<T,V_1> and T2 = std::integral_constant<T,V_2>. Then the result is std::bool_constant<(V1 > V2)>.
 
template<fcppt::mpl::bool_concept B, typename T , typename F >
using if_ = std::conditional_t< B::value, T, F >
 The if-then-else function.Similar to std::conditional_t but takes a bool_concept, i.e., a std::bool_constant<V> for any bool V instead of V directly.
 
template<typename F , fcppt::mpl::list::object_concept L>
using is_invocable = fcppt::mpl::list::apply< fcppt::mpl::lambda< std::is_invocable >, fcppt::mpl::list::push_front< L, F > >
 Checks if a function can be invoked with a given argument list.Checks if function F can be invoked with the types in L, i.e. if L = list::object<L_1,...,L_n>, then the result is.
 
template<typename T >
using is_lambda = typename fcppt::mpl::detail::is_lambda< T >::type
 Checks if a type is a lambda.
 
template<typename T >
using is_size_type = typename fcppt::mpl::detail::is_size_type< T >::type
 Checks if a type is a size_type.T is a size type if and only if it is of the form fcppt::mpl::size_type<N> for some std::size_t N.
 
template<fcppt::mpl::integral_concept T1, fcppt::mpl::integral_concept T2>
using less = typename fcppt::mpl::detail::less< T1, T2 >::type
 Checks if one integral constant is less than another.Let T1 = std::integral_constant<T,V_1> and T2 = std::integral_constant<T,V_2>. Then the result is std::bool_constant<(V1 < V2)>.
 
template<fcppt::mpl::integral_concept T1, fcppt::mpl::integral_concept T2>
using mul = typename fcppt::mpl::detail::mul< T1, T2 >::type
 Multiplies two integral constants.Let T1 = std::integral_constant<T,V_1> and T2 = std::integral_constant<T,V_2>. Then the result is std::integral_constant<T,V_1 * V_2>.
 
template<std::size_t I>
using size_type = std::integral_constant< std::size_t, I >
 The size type used by this library.
 

Variables

template<fcppt::mpl::lambda_concept L, typename... Args>
constexpr bool apply_v = fcppt::mpl::apply<L,Args...>::value
 Calls a lambda.
 
template<typename F , fcppt::mpl::list::object_concept L>
constexpr bool is_invocable_v = fcppt::mpl::is_invocable<F,L>::value
 Checks if a function can be invoked with a given argument list.