title: Can the limitations of std::align be checked at compile-time or runtime?
body: <p>I would like to align a region of memory which will be used for storage to a specific power-of-two alignment using <a href="http://en.cppreference.com/w/cpp/memory/align" rel="nofollow noreferrer"><code>std::align</code></a><sup>1</sup>.</p>
  
  <p>This will apparently invoke UB if the alignment value isn't a <em>fundamental or extended alignment</em> value. Is there any way to check at compile-time (e.g., a <code>static_assert</code>) or at runtime whether the value I want to use is supported?</p>
  
  <hr>
  
  <p><sup>1</sup> To be clear, I'm also open to <code>std::alignas</code> or <code>std::aligned_storage</code> if they are more flexible or otherwise allow me to safely check what is supported.</p>