Travis Vitek wrote: > > >As I see it, my options are... > > 1. put code that will prevent instantiation in the the type >declaration (i.e. static_assert) > 2. provide a suitable default that is not correct, but can be >used to detect the failure > 3. disable traits entirely by defining _RWSTD_NO_EXT_CXX_0X if >the macros have not been defined > 4. disable the affected traits (and their tests) if the macros >have not been defined >
Another option would be to write config tests to look for __alignof() and alignof(). If these are found, then we could use them. If not we could get the alignment of a few primitive types, and I could provide an aligned_storage implementation that supports only these alignments. The test would need to check a bunch of macros, but it would all work out.
