Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <array>
- #include <type_traits>
- #include <utility>
- namespace details {
- template<typename ValueType, typename... Args>
- using array_value_type = typename std::conditional<
- std::is_same<ValueType, void>::value,
- typename std::common_type<Args...>::type,
- ValueType
- >::type;
- template<typename ValueType, typename... Args>
- using make_array_t = std::array<array_value_type<ValueType, Args...>, sizeof...(Args)>;
- }
- template<typename ValueType = void, typename... Args>
- constexpr auto make_array(Args&&... args) -> details::make_array_t<ValueType, Args&&...> {
- return details::make_array_t<ValueType, Args&&...>{std::forward<Args>(args)...};
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement