др.)
При написании своего type_trait и алиаса для него:
template <typename T, typename = void>
struct is_iterable : std::false_type {};
template <typename T>
struct is_iterable<T, std::void_t<decltype(std::declval<T>().begin()),
decltype(std::declval<T>().end())>>
: std::true_type {};
template<typename T>
using is_iterable_v = typename is_iterable<T>::value;
Почему для него алиас выдаёт ошибку в enable_if?
error: type/value mismatch at argument 1 in template parameter list for ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type’
template<typename T, std::enable_if_t<is_iterable_v<T>, nullptr_t> * = nullptr>
template<typename T> constexpr bool is_iterable_v = is_iterable<T>::value;
Обсуждают сегодня