Passer des types simples en paramètres
Bonjour,
j'aimerais savoir s'il y a une différence de performance entre ces prototypages pour une seule et même tache :
Code:
1 2 3
| void fun(size_t);
void fun(size_t const);
void fun(size_t const&) |
Je crois me souvenir avoir lu dans le livre d'Alexandrescu que la deuxième solution est plus efficace que la troisième mais je ne vois pas vraiment pourquoi.
J'ai une deuxième question connexe concernant les fonctions templates :
Code:
template<typename T> void fun(T const&);
Dans le cas où T peut aussi bien être un type simple qu'un objet, quelle solution préconisez-vous pour forcer les types simples à ne pas être passés par référence mais par valeur?
Merci d'avance pour votre aide et vos conseils!