iffl
1.3.4
Implements Intrusive Flat Forward List container
|
This module contains few meta-programming facilities that are not part of the STL. More...
Go to the source code of this file.
Classes | |
class | iffl::mpl::nonesuch |
A valid type that cannot be instantiate. Used by some detector meta-functions as a default type. More... | |
class | iffl::mpl::details::detector< Default, AlwaysVoid, Operation, Arguments > |
defines detector meta-function More... | |
struct | iffl::mpl::details::detector< Default, void_t< Operation< Arguments... > >, Operation, Arguments... > |
Namespaces | |
iffl::mpl | |
intrusive flat forward list | |
iffl | |
intrusive flat forward list | |
iffl::mpl::details | |
intrusive flat forward list meta-programing helpers library internal types | |
Typedefs | |
template<typename... Whatever> | |
using | iffl::mpl::void_t = std::void_t< Whatever ... > |
Type that can take any number of template parameters and returns void. It is used by detector meta-function SFINAE. | |
template<template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::is_detected = typename details::detector< nonesuch, void, Operation, Arguments... >::value_type |
is_detected will be either true_type or false_type, depending if Operation<Arguments...> meta-function is well formed More... | |
template<template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::is_detected_t = is_detected< Operation, Arguments... > |
alias for is_detected More... | |
template<template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::detected_t = typename details::detector< nonesuch, void, Operation, Arguments... >::type |
is_detected will be either true_type or false_type, depending if Operation<Arguments...> meta-function is well formed More... | |
template<typename Default , template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::detected_or = details::detector< Default, void, Operation, Arguments... > |
type of detector Operation<Arguments...> if it is well formed, and otherwise Default type More... | |
template<typename Default , template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::detected_or_t = typename detected_or< Default, Operation, Arguments... >::type |
Extracts and return detector<...>::type of detected_or. More... | |
template<typename ExpectedType , template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::is_detected_exact = std::is_same< ExpectedType, detected_t< Operation, Arguments... > > |
returns std::true_type when result of meta-function detected_t is the same as ExpectedType More... | |
template<typename ConvertibleToType , template< typename... > typename Operation, typename... Arguments> | |
using | iffl::mpl::is_detected_convertible = std::is_convertible< detected_t< Operation, Arguments... >, ConvertibleToType > |
returns std::true_type when result of meta-function detected_t is the convertible to ConvertibleToType More... | |
Variables | |
template<template< typename... > typename Operation, typename... Arguments> | |
constexpr auto const | iffl::mpl::is_detected_v { is_detected<Operation, Arguments...>{} } |
Instance of is_detected meta-function output. More... | |
template<template< typename... > typename Operation, typename... Arguments> | |
constexpr auto const | iffl::mpl::detected_v { detected_t<Operation, Arguments...>{} } |
Instance of detected_t meta-function output. More... | |
template<typename Default , template< typename... > typename Operation, typename... Arguments> | |
constexpr auto const | iffl::mpl::detected_or_v { typename detected_or<Default, Operation, Arguments...>::type{} } |
instance of detector<...>::type of detected_or More... | |
template<typename ExpectedType , template< typename... > typename Operation, typename... Arguments> | |
constexpr auto const | iffl::mpl::is_detected_exact_v { is_detected_exact<ExpectedType, Operation, Arguments...>{} } |
instance of is_detected_exact<...>::value More... | |
template<typename ConvertibleToType , template< typename... > typename Operation, typename... Arguments> | |
constexpr auto const | iffl::mpl::is_detected_convertible_v { is_detected_convertible<ConvertibleToType, Operation, Arguments...>{} } |
instance of the is_detected_convertible More... | |
This module contains few meta-programming facilities that are not part of the STL.
Helpers for detect idiom. See https://www.youtube.com/watch?v=U3jGdnRL3KI It can be used to safely deduce if an expression is valid for a type. Most likely can be replaced with concepts once they are officially part of the language