mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
Replace ::value and ::type with _v and _t suffixes (#1885)
This commit is contained in:
committed by
Peter Johnson
parent
a5650b9439
commit
1d8c4d016f
@@ -22,7 +22,7 @@ struct vec_type_helper {
|
||||
|
||||
template <typename... Args>
|
||||
struct vec_type_helper<void, Args...> {
|
||||
using type = typename std::common_type<Args...>::type;
|
||||
using type = typename std::common_type_t<Args...>;
|
||||
};
|
||||
|
||||
template <typename T, typename... Args>
|
||||
@@ -33,14 +33,12 @@ struct all_constructible_and_convertible : std::true_type {};
|
||||
|
||||
template <typename T, typename First, typename... Rest>
|
||||
struct all_constructible_and_convertible<T, First, Rest...>
|
||||
: std::conditional<std::is_constructible<T, First>::value &&
|
||||
std::is_convertible<First, T>::value,
|
||||
all_constructible_and_convertible<T, Rest...>,
|
||||
std::false_type>::type {};
|
||||
: std::conditional_t<
|
||||
std::is_constructible_v<T, First> && std::is_convertible_v<First, T>,
|
||||
all_constructible_and_convertible<T, Rest...>, std::false_type> {};
|
||||
|
||||
template <typename T, typename... Args,
|
||||
typename std::enable_if<!std::is_trivially_copyable<T>::value,
|
||||
int>::type = 0>
|
||||
typename std::enable_if_t<!std::is_trivially_copyable_v<T>, int> = 0>
|
||||
std::vector<T> make_vector_impl(Args&&... args) {
|
||||
std::vector<T> vec;
|
||||
vec.reserve(sizeof...(Args));
|
||||
@@ -50,19 +48,18 @@ std::vector<T> make_vector_impl(Args&&... args) {
|
||||
}
|
||||
|
||||
template <typename T, typename... Args,
|
||||
typename std::enable_if<std::is_trivially_copyable<T>::value,
|
||||
int>::type = 0>
|
||||
typename std::enable_if_t<std::is_trivially_copyable_v<T>, int> = 0>
|
||||
std::vector<T> make_vector_impl(Args&&... args) {
|
||||
return std::vector<T>{std::forward<Args>(args)...};
|
||||
}
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <typename T = void, typename... Args,
|
||||
typename V = detail::vec_type_helper_t<T, Args...>,
|
||||
typename std::enable_if<
|
||||
detail::all_constructible_and_convertible<V, Args...>::value,
|
||||
int>::type = 0>
|
||||
template <
|
||||
typename T = void, typename... Args,
|
||||
typename V = detail::vec_type_helper_t<T, Args...>,
|
||||
typename std::enable_if_t<
|
||||
detail::all_constructible_and_convertible<V, Args...>::value, int> = 0>
|
||||
std::vector<V> make_vector(Args&&... args) {
|
||||
return detail::make_vector_impl<V>(std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user