template struct cv::cudev::IsUnaryFunction

#include <functional.hpp>

template <typename F>
struct IsUnaryFunction
{
    // typedefs

    typedef char Yes;

    // enums

    enum
    {
        value = (sizeof(check(makeF())) == sizeof(Yes)),
    };

    // structs

    struct No;

    // methods

    template <
        typename T,
        typename D
        >
    static
    Yes
    check(unary_function<T, D>);

    static
    No
    check(...);

    static
    F
    makeF();
};