| Home | Libraries | People | FAQ | More

### is_detected_exact

    template<class Expected, template<class...> class Op, class... Args>
    using is_detected_exact = is_same<Expected, detected_t<Op, Args...> >;

    template<class Expected, template<class...> class Op, class... Args>
    constexpr bool is_detected_exact_v = is_detected_exact<Op, Args...>::value;

C++ Standard Paper: N4502

Compiler Compatibility: Requires C++11 variadic templates and C++11 template aliases.

Header: `#include <boost/type_traits/is_detected_exact.hpp>`

The type `is_detected_exact<To, Op, Args>` is an alias for true_type if the result of `Op<Args>` is type `To`. Otherwise it's the type false_type;

Examples:

    template<class T>
    using difference_t = typename T::difference_type;

    static_assert(boost::is_detected_exact_v<std::ptrdiff_t, difference_t, T>);

See also: is_detected, is_detected_convertible.