#include <array>
#include <iostream>

class Foo
{
	public:
	    Foo(int){}
		Foo(const Foo &) = delete;
		
		
		Foo(Foo &&)
		{
			std::cout<<"Moved\n";
		}
};

template<class... Type>
constexpr std::array<typename std::common_type<Type...>::type, sizeof...(Type)> make_array(Type&&... t)
{
	return {std::forward<Type>(t)...};
}

int main() {
	auto arr = make_array(Foo{1}, Foo{2});
	return 0;
}