Struct template is_callable
boost::proto::is_callable — Boolean metafunction which tells whether a type is a callable
PolymorphicFunctionObject or not.
Synopsis
template<typename T>
struct is_callable : mpl::bool_<true-or-false> {
};
Description
<proto::is_callable<>>используется преобразованием<proto::when<>>, чтобы определить, является ли тип функции<R(A1,...An)>CallableTransform.илиобъектная трансформация. Первые оцениваются с использованием<proto::call<>>, а последующие с<proto::make<>>. Если<proto::is_callable<R>::value><true>, то тип функции —CallableTransform; в противном случае этообъектная трансформация.
Если он не является специализированным для типа<T>,<proto::is_callable<T>::value>вычисляется следующим образом:
Если<T>является типом шаблона<X<Y0,...Yn>>, где все<Yx>являются типами<x>в<[0,n]>,<proto::is_callable<T>::value>является<boost::is_same<Yn,proto::callable>::value>.
Если<T>происходит от<proto::callable>,<proto::is_callable<T>::value>является<true>.
В противном случае<proto::is_callable<T>::value>будет<false>
.