Skip to content

Instantly share code, notes, and snippets.

@ttsuki
Last active May 29, 2019 16:03
Show Gist options
  • Save ttsuki/a950e2e4889dc5a143c14ba07d488253 to your computer and use it in GitHub Desktop.
Save ttsuki/a950e2e4889dc5a143c14ba07d488253 to your computer and use it in GitHub Desktop.
template<typename T, std::enable_if_t<std::is_array_v<T>, std::nullptr_t> = nullptr>
struct arrayInfo
{
using element_t = typename std::remove_reference<decltype(*std::begin(std::declval<T&>()))>::type;
static constexpr size_t length = sizeof(T) / sizeof(element_t);
using asStdArray = std::array<element_t, length>;
};
template<class T>
using stdArrayOf = typename arrayInfo<T>::asStdArray;
// stdArrayOf<int[3]> x; // <= std::array<int, 3>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment