Struct template when<Grammar, Fun *>
boost::proto::when<Grammar, Fun *> — A specialization that treats function pointer Transforms as if they
were function type Transforms.
Synopsis
template<typename Grammar, typename Fun>
struct when<Grammar, Fun *> : proto::when< Grammar, Fun > {
};
Description
Эта специализация требует, чтобы<Fun>был типом функции.
Эта специализация необходима для вложенных трансформаций, таких как<proto::when<G, T0(T1(_))>>. В C++ функции, которые используются в качестве параметров для других функций, автоматически распадаются на типы указателей фаунции. Иными словами, тип<T0(T1(_))>неотличим от<T0(T1(*)(_))>. Эта специализация необходима для правильного управления этими вложенными типами указателей функций.