title: std::align and std::aligned_storage for aligned allocation of memory blocks
body: <p>I'm trying to allocate a block of memory of size <code>size</code> which needs to be <code>Alignment</code> aligned where the size may not be defined at compile time. I know routines such as <code>_aligned_alloc</code>, <code>posix_memalign</code>, <code>_mm_alloc</code>, etc exist but I do not want to use them as they bring down code portability. <br/>
  <b>C++11</b> gives a routine <code>std::align</code> and also a class <code>std::aligned_storage</code> from which I can retrieve a POD type to allocate an element which will be aligned to my requirements. However my goal is to create an allocator which would allocate a block of memory of <code>size</code> size (not just a single element) which would be aligned. <br/>
  Is this possible using <code>std::align</code>? The reason I ask is since <code>std::align</code> moves the pointer, the class using that pointer will give the allocator a pointer to the moved address for deallocation which would be invalid. Is there a way to create an aligned_allocator this way? </p>