template et if

template et if - C++ - Programmation

Marsh Posté le 30-05-2009 à 03:00:13    

Hello,
 
Avec un code comme ci-dessous :
 
template<int T=0>
class A
{
A(){}
Ã<T>()
{
   if(T) write(..);
}
};
 
le if "saute" à la compilation, à l'éxécution il n'y a plus de test  ?
merci

Reply

Marsh Posté le 30-05-2009 à 03:00:13   

Reply

Marsh Posté le 30-05-2009 à 08:43:43    

if(0) est retiré du code à la compilation à la phase d'elimination du code mort

Reply

Marsh Posté le 30-05-2009 à 11:31:58    

Sinon tu peux faire une spécialisation.

Reply

Marsh Posté le 31-05-2009 à 21:59:54    

a oui exact.
 
J'aurais bien aimé aussi pouvoir avoir une variable statique interne à une classe template qui puisse être partagée entre plusieurs instances, mais il me semble qu'une classe template instancié avec un paramètre x n'est pas du même type qu'une classe template instancié avec un paramètre y...impossible de partager une variable statique entre plusieurs instances, dans le cas d'une classe template, ou il existe une solution ?


Message édité par Glock 17Pro le 31-05-2009 à 22:08:37
Reply

Marsh Posté le 31-05-2009 à 22:30:13    

Avoir une base commune non-template. Mais si tu peux éviter toute variable statique, c'est autant que le compilateur peut optimiser.

Reply

Marsh Posté le 01-06-2009 à 01:53:28    

Tu peux toujours faire une interface qui contient ta variable statique et dont dérive ton template


---------------
last.fm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed