Meta  0.1
A tiny metaprogramming library
meta::defer< C, Ts > Struct Template Reference


template<template< typename... > class C, typename... Ts>
struct meta::defer< C, Ts >

A wrapper that defers the instantiation of a template C with type parameters Ts in a lambda or let expression.

In the code below, the lambda would ideally be written as lambda<_a,_b,push_back<_a,_b>>, however this fails since push_back expects its first argument to be a list, not a placeholder. Instead, we express it using defer as follows:

template<typename List>
using reverse = reverse_fold<List, list<>, lambda<_a, _b, defer<push_back, _a, _b>>>;

Definition at line 525 of file meta.hpp.

Inherits defer_< C, list< Ts... > >.

Inherited by meta::extension::apply< F, integer_sequence< T, Is... > >, meta::extension::apply< F, Ret(Args...)>, and meta::extension::apply< F, T< Ts... > >.