Re[4]: реверс функции - надо узнать оригинал
От: disasm  
Дата: 21.05.10 12:57
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, disasm, Вы писали:


К>Поясняю ещё раз

К>
К>// в исходном коде
К>Some foo()
К>{
К>  if(...)
К>    return Some(xxxxx);
К>  else
К>    return Some(yyyyy);
К>}

К>void bar()
К>{
К>  foo().buz(); // Some::buz
К>}

К>// как это на самом деле
К>Some* foo(void* buf)
К>{
К>  if(...)
К>    return new(buf) Some(xxxxx); // гуглить "placement new" !!!
К>  else
К>    return new(buf) Some(yyyyy);
К>}

К>void bar()
К>{
К>  char buf[sizeof(Some)];
К>  Some* tmp = foo(buf);
  tmp->>buz();
  tmp->>~Some();
К>}
К>


да! проверил компилятором + дисасмом, все так и есть
дествительно NRVO
теперь стало на всё на свои места

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