|  | Home | Libraries | People | FAQ | More | 
template<template<class...> class Op, class... Args>
using detected_t = see-below;
        Aliases: Op<Args...> if it is a valid template-id, otherwise
        boost::nonesuch.
      
C++ Standard Paper: N4502
Compiler Compatibility: Requires C++11 variadic templates and C++11 template aliases.
        Header: #include
        <boost/type_traits/detected.hpp>
      
Examples:
        Suppose you wish to determine whether a type has a size() const-member function, then given the meta-functions:
      
template <class T> using size_member_tester = decltype(std::declval<const T&>().size()); template <class T> using size_member_t = boost::detected_t<size_member_tester, T >;
        Then the type size_member_t<T>
        is an alias for size_member_tester<T>
        if the operation is valid, and an alias for boost::nonesuch
        otherwise.
      
See also: is_detected, is_detected_convertible, is_detected_exact.