Y at-il raison de ne pas envoyer un paramètre comme const &
, au lieu de la valeur, quand il ne sera pas modifié et aucune copie seront? Ma compréhension est qu'un const
par paramètre de valeur est le même que sans le const
(et ne se surchargera pas) donc il sera encore copié.Paramètres de fonction comme Const Référence
Je sais que c'est mieux pour les gros objets d'envoyer par const &
, mais je ne sais pas où est la ligne pour cela. Ou si même de petits paramètres doivent être envoyés par la valeur si ils ne seront pas modifiés ou copiés. Note: J'ai essayé de chercher ceci mais le sujet est assez vague donc je n'ai pas trouvé de bonnes réponses, je m'excuse si cela a déjà été répondu (j'ai trouvé beaucoup de questions sur quand utiliser const
quand utiliser const &
mais pas à propos des avantages de la valeur par rapport à const &
pour les objets qui ne sont pas manifestement de grande taille).
vous trouverez peut-être cet article intéressant: http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ – lccarrasco
Exactement le type de chose que je cherchais merci! Les mots-clés sont si généraux qu'il était difficile pour moi de chercher. –
@lccarrasco: Dave Abrahams parle de renvoyer des objets par valeur à l'intérieur des fonctions. La question concerne les paramètres d'entrée aux fonctions. Dans ce cas, l'OP doit passer des objets autres que les types natifs par référence const. – Praetorian