μHAL (v2.8.17)
Part of the IPbus software repository
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Static Public Attributes | List of all members
exactly_one< Predicate, Default, Ts > Struct Template Reference

Return the one and only type which matches the predicate, or Default if none match. More...

#include </builds/ipbus/ipbus-software/uhal/python/pybind11-python2/include/pybind11/detail/common.h>

Public Types

using type = conditional_t< found, typename pack_element< index, Ts... >::type, Default >
 
using type = conditional_t< found, typename pack_element< index, Ts... >::type, Default >
 

Static Public Attributes

static constexpr auto found = constexpr_sum(Predicate<Ts>::value...)
 
static constexpr auto index = found ? constexpr_first<Predicate, Ts...>() : 0
 

Detailed Description

template<template< typename > class Predicate, typename Default, typename... Ts>
struct exactly_one< Predicate, Default, Ts >

Return the one and only type which matches the predicate, or Default if none match.

If more than one type matches the predicate, fail at compile-time.

Definition at line 834 of file common.h.

Member Typedef Documentation

◆ type [1/2]

template<template< typename > class Predicate, typename Default , typename... Ts>
using exactly_one< Predicate, Default, Ts >::type = conditional_t<found, typename pack_element<index, Ts...>::type, Default>

Definition at line 839 of file common.h.

◆ type [2/2]

template<template< typename > class Predicate, typename Default , typename... Ts>
using exactly_one< Predicate, Default, Ts >::type = conditional_t<found, typename pack_element<index, Ts...>::type, Default>

Definition at line 858 of file common.h.

Member Data Documentation

◆ found

template<template< typename > class Predicate, typename Default , typename... Ts>
static constexpr auto exactly_one< Predicate, Default, Ts >::found = constexpr_sum(Predicate<Ts>::value...)
staticconstexpr

Definition at line 835 of file common.h.

◆ index

template<template< typename > class Predicate, typename Default , typename... Ts>
static constexpr auto exactly_one< Predicate, Default, Ts >::index = found ? constexpr_first<Predicate, Ts...>() : 0
staticconstexpr

Definition at line 838 of file common.h.


The documentation for this struct was generated from the following files: