#include <memory>
#include <iostream>
struct alignas(8) SA
{
int dat;
double d;
};
void Align_STL()
{char buf[64] = { 0 };
std::size_t am = alignof(int);
std::size_t sz = 64;
void *p = buf;
void * ptr = std::align(am, sizeof(int), p, sz);
if (!ptr)
{
std::cout << "not enough memory!" << std::endl;
}
sz = alignof(std::max_align_t);
std::cout << std::alignment_of<A>::value << '\n';
}