iffl  1.3.4
Implements Intrusive Flat Forward List container
Public Types | List of all members
iffl::mpl::details::detector< Default, AlwaysVoid, Operation, Arguments > Class Template Reference

defines detector meta-function More...

#include <iffl_mpl.h>

Public Types

using value_type = std::false_type
 In this template specialization it is always false_type.
 
using type = Default
 In this template specialization it is Default type.
 

Detailed Description

template<typename Default, typename AlwaysVoid, template< typename... > typename Operation, typename... Arguments>
class iffl::mpl::details::detector< Default, AlwaysVoid, Operation, Arguments >

defines detector meta-function

Specialization for the case when Operation<Arguments...> is well formed.

Template Parameters
Default- Default type assigned to detector::type is SFINAE fails instantiation of Operation<Arguments>
AlwaysVoid- used by specialization as place where it will attempt instantiation of Operation<Arguments>. It is not used in default case
Operation- meta-function that we are trying to evaluate
Arguments- arguments to be passed to the meta-function
Returns
detector::value_type is std::false_type and detector::type is Default

General case is selected if no better specialization is found

This meta-function has 2 return types

  1. value_type is either std::true_type or std::false_type, depending if Operation<Arguments...> is well formed.
  2. type is a type of Operation<Arguments...> or a type of Default, depending if Operation<Arguments...> is well formed.

Input parameters

  1. Default type of result "type" is Operation<Arguments...> is not well formed, otherwise it is not used
  2. AlwaysVoid is placeholder where specialization would attempt to evaluate std::void_t<Operation<Arguments ...>>. void_t returns type void no matter what parameters we pass
  3. Operation is the meta-function that we are trying to evaluate for the Arguments...
  4. Parameters for the meta-function Operation
Template Parameters
Default- Default type assigned to detector::type is SFINAE fails instantiation of Operation<Arguments>

The documentation for this class was generated from the following file: