Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::proto::when< Grammar, Fun * > Struct Template Reference

A specialization that treats function pointer Transforms as if they were function type Transforms. More...

#include <when.hpp>

Inheritance diagram for boost::proto::when< Grammar, Fun * >:
Collaboration diagram for boost::proto::when< Grammar, Fun * >:

Public Types

typedef Grammar first
 
typedef Fun second
 
typedef Grammar::proto_grammar proto_grammar
 

Detailed Description

template<typename Grammar, typename Fun>
struct boost::proto::when< Grammar, Fun * >

A specialization that treats function pointer Transforms as if they were function type Transforms.

This specialization requires that Fun is actually a function type.

This specialization is required for nested transforms such as when<G, T0(T1(_))>. In C++, functions that are used as parameters to other functions automatically decay to funtion pointer types. In other words, the type T0(T1(_)) is indistinguishable from T0(T1(*)(_)). This specialization is required to handle these nested function pointer type transforms properly.

Member Typedef Documentation

typedef Grammar boost::proto::when< Grammar, Fun >::first
inherited
typedef Grammar::proto_grammar boost::proto::when< Grammar, Fun >::proto_grammar
inherited
typedef Fun boost::proto::when< Grammar, Fun >::second
inherited

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