12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #ifndef BOOST_CLBL_TRTS_HAS_VARARGS_HPP
- #define BOOST_CLBL_TRTS_HAS_VARARGS_HPP
- #include <boost/callable_traits/detail/core.hpp>
- namespace boost { namespace callable_traits {
- template<typename T>
- struct has_varargs;
- template<typename T>
- struct has_varargs : detail::traits<
- detail::shallow_decay<T>>::has_varargs {
- using type = typename detail::traits<
- detail::shallow_decay<T>>::has_varargs;
- };
- #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
- template<typename T>
- struct has_varargs_v {
- static_assert(std::is_same<T, detail::dummy>::value,
- "Variable templates not supported on this compiler.");
- };
- #else
- template<typename T>
- BOOST_CLBL_TRAITS_INLINE_VAR
- constexpr bool has_varargs_v =
- detail::traits<detail::shallow_decay<T>>::has_varargs::value;
- #endif
- }}
- #endif
|