bit_cast

 

template <class Dest, class Source>

inline Dest bit_cast(const Source& source) {

  // Compile time assertion: sizeof(Dest) == sizeof(Source)

  // A compile error here means your Dest and Source have different sizes.

  typedef char VerifySizesAreEqual [sizeof(Dest) == sizeof(Source) ? 1 : -1];

 

  Dest dest;

  memcpy(&dest, &source, sizeof(dest));

  return dest;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章