template struct cv::cudev::IsBinaryFunction

#include <functional.hpp>

template <typename F>
struct IsBinaryFunction
{
    // typedefs

    typedef char Yes;

    // enums

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

    // structs

    struct No;

    // methods

    template <
        typename T1,
        typename T2,
        typename D
        >
    static
    Yes
    check(binary_function<T1, T2, D>);

    static
    No
    check(...);

    static
    F
    makeF();
};