1) Это будет делать то же самое, как если бы это не было const&
. Вы не можете изменять параметры const&
, поэтому вы можете связать их с константами 1 .
2) Может быть очень крошечная разница в эффективности, потому что вы действительно (возможно, зависит от реализации) передаете указатель на значение вместо значения, так что вам придется разыменовывать указатель, чтобы добраться до реального значения. (Опять же, компилятор мог видеть, что передача int
по ссылке на константу - пустая трата времени, поэтому он будет передавать вещь по значению и делать вид, что это по ссылке. Вы не можете знать.) Эта жертва может стоит больших конструкций, но обычно вам не нужно передавать что-то вроде int
по константной ссылке.
<ч />
1 mcmcc указал, что в случае целочисленных литералов вы действительно привязывает ссылку к месту в стеке (например, в отличие от строковых литералов, которые находятся в статической памяти).