make_monadic_c

Synopsis

template <class MonadTag, class Expr>
struct make_monadic_c
{
  // unspecified
};

Description

The same as make_monadic, but Expr is an angle-bracket expression and not a syntax.

#include <mpllibs/metamonad/make_monadic_c.hpp>

Expression semantics

For any t, e classes

make_monadic_c<t, e>::type

is equivalent to

make_monadic<t, syntax<e>>::type

Example

MPLLIBS_METAFUNCTION(f, (N)) ((just<N>));
MPLLIBS_METAFUNCTION(maybe_divides, (A)(B)) ((just<divides<A, B>>));

make_monadic_c<
  maybe_tag,
  maybe_divides<already_monadic<f<int_<26>>>, already_monadic<f<int_<2>>>>
>::type

[up]