È una cattiva pratica?
const int sId(int const id);
// true/false it doesn't matter
template<bool i>
const int sId(int const id) {
return this->id = id;
}
const int MCard::sId(int const id){
MCard card = *this;
this->id = id;
this->onChange.fire(EventArgs<MCard&, MCard&>(*this, card));
return this->id;
}
myCard.sId(9);
myCard.sId<true>(8);
Come puoi vedere, il mio obiettivo è essere in grado di avere un comportamento alternativo per SID.
So che potrei usare un secondo parametro per la funzione e usare un if, ma questo sembra più divertente (imo) e potrebbe prevenire la previsione di branch (non sono esperto in quel campo).
Quindi, è una pratica valida e / o c'è un approccio migliore?