proxygen
folly::detail::MetaDefer< C, Ts > Class Template Reference

#include <TypeList.h>

Classes

struct  Result
 

Public Types

template<class... Us>
using apply = _t< If< sizeof(try_(0))-1||sizeof...(Us), Empty, Result >>
 

Static Private Member Functions

template<template< class... > class D = C, class = D<Ts...>>
static char(& try_ (int))[1]
 
static char(& try_ (long))[2]
 

Detailed Description

template<template< class... > class C, class... Ts>
class folly::detail::MetaDefer< C, Ts >

Defers the evaluation of an alias.

Given a template C and arguments Ts..., then

  • If C<Ts...> is well-formed, MetaApply<MetaDefer<C, Ts...>> is well- formed and is an alias for C<Ts...>.
  • Otherwise, MetaApply<MetaDefer<C, Ts...>> is ill-formed.

Definition at line 170 of file TypeList.h.

Member Typedef Documentation

template<template< class... > class C, class... Ts>
template<class... Us>
using folly::detail::MetaDefer< C, Ts >::apply = _t<If<sizeof(try_(0)) - 1 || sizeof...(Us), Empty, Result>>

Definition at line 180 of file TypeList.h.

Member Function Documentation

template<template< class... > class C, class... Ts>
template<template< class... > class D = C, class = D<Ts...>>
static char(& folly::detail::MetaDefer< C, Ts >::try_ ( int  ) )[1]
staticprivate
template<template< class... > class C, class... Ts>
static char(& folly::detail::MetaDefer< C, Ts >::try_ ( long  ) )[2]
staticprivate

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