|  | 
| template<template< class... > class Op, class... Args> | 
| using | detail::is_detected = typename detector<nonesuch, void, Op, Args...>::value_t | 
|  | 
| template<template< class... > class Op, class... Args> | 
| using | detail::detected_t = typename detector<nonesuch, void, Op, Args...>::type | 
|  | 
| template<class Default , template< class... > class Op, class... Args> | 
| using | detail::detected_or = detector<Default, void, Op, Args...> | 
|  | 
| template<class Default , template< class... > class Op, class... Args> | 
| using | detail::detected_or_t = typename detected_or<Default, Op, Args...>::type | 
|  | 
| template<class Expected , template< class... > class Op, class... Args> | 
| using | detail::is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>> | 
|  | 
| template<class To , template< class... > class Op, class... Args> | 
| using | detail::is_detected_convertible | 
|  |