|
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
1.8.15