Вопрос по union
От: SL  
Дата: 06.08.15 09:02
Оценка: -1 :))) :)
Здравствуйте, такой вопрос есть union и его использование
union
{
   char buffer[5];
} Databuffer;


template <typename T>
void construct(const T& v)
{
   new(&Databuffer.buffer[0]) T(v);
}

template <typename T>
T& get()
{
  return *(T *)&Databuffer.buffer[0];
}

template <typename TT>
static void copy(void *dst,const void *src){
    *(TT *)dst = *(TT *)src; \
} 

..................................................
{
    std::string ss("1233445566678912334455666789123344556667891233445566678912334455666789");
    construct<std::string>(ss);
}
   std::string str = get<std::string>();
{
    std::string ss("1233445566678912334455666789123344556667891233445566678912334455666789");
    copy<std::string>(Databuffer.buffer, &ss);
}
    
   std::string str1 = get<std::string>();


собственно вопрос каким образом происходит выделение памяти в buffer?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.