
#include <iostream>
#include <type_traits>
#include <cstring>

int main() {
	typename std::aligned_storage<sizeof(char) * 64, alignof(char)>::type m;
	typename std::aligned_storage<sizeof(char) * 64, alignof(char)>::type n;

	std::memcpy(&m, "Hello World", 12);

	std::cout << reinterpret_cast<const char*>(&m) << std::endl;

	n = m;

	std::cout << reinterpret_cast<const char*>(&n) << std::endl;

	std::memcpy(&m, "123456", 7);

	std::cout << reinterpret_cast<const char*>(&m) << std::endl;
	std::cout << reinterpret_cast<const char*>(&n) << std::endl;

	return 0;
}