Re: Использовать таги или флажки
От: Centaur Россия  
Дата: 11.11.04 16:37
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>Заметил что коллега использует таги в своём коде:


SJA>
SJA>VariantWrp var1;
SJA>VariantWrp var2(vtSource);
SJA>VariantWrp var3(no_copy, vtSource);
SJA>


SJA>Я вижу такую альтернативу:

SJA>
SJA>VariantWrp var1;
SJA>VariantWrp var2(vtSource);
SJA>VariantWrp var3(vtSource, false);
SJA>


SJA>Какой случай когда лучше применять ?


void f(/*неважно*/, bool flag)
{
  // много кода…
  // очень много кода…
  // общего для обоих случаев кода…
  if (flag) /*частный случай 1*/; else /*частный случай 2*/;
  // ещё очень много кода…
}

void g(/*пофигу*/)
{
  // много кода для частного случая 1
}

void g(tag_t, /*пофигу*/)
{
  // много другого кода для случая 2
  // который совсем не похож на код случая 1
}


Опять же, overload разрешится при компиляции, а флаг — только в рантайме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.