Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <type_traits>
- #include <utility>
- using namespace std;
- template<typename T, typename... Args>
- class VecBase
- {
- public:
- static constexpr std::size_t size = sizeof...(Args);
- private:
- T v[size];
- public:
- VecBase(Args... x) : v{x...} {}
- };
- template<typename T, int rem, typename... Args>
- class VecHelper
- {
- public:
- typedef typename VecHelper<T, rem - 1, T, Args...>::type type;
- };
- template<typename T, typename... Args>
- class VecHelper<T, 0, Args...>
- {
- public:
- typedef VecBase<T, Args...> type;
- };
- template<typename T, int N>
- using Vec = typename VecHelper<T, N>::type;
- int main()
- {
- Vec<float, 3> v(1.0f, 2.0, 3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement