what is the basic use of aligned_storage?

后端 未结 1 815
梦如初夏
梦如初夏 2021-02-14 03:13

What is the basic usage of std::tr1::aligned_storage ? Can it be used as auto memory for a data type Foo like the one below?

   struct Foo{...};
   std::tr1::ali         


        
相关标签:
1条回答
  • 2021-02-14 03:47

    Well, apart from your use of reinterpret_cast, it looks ok to me. (I'm not 100% sure on the second one).

    The problem with reinterpret_cast is that it makes no guarantees about the result of the cast, only that if you cast the result back to the original type, you get the original value. So there is no guarantee that the result of the cast will contain the same bit pattern, or point to the same address.

    As far as I know, a portable solution for casting a pointer x to a type T* is static_cast<T*>(static_cast<void*>(x)), since static_cast to and from void* is guaranteed to turn a pointer to the same address.

    But that's only tangentially related to your question. :)

    0 讨论(0)
提交回复
热议问题