LINUX.ORG.RU

Re: [C, C++, GCC] Передача параметров по ссылке или по значению

при полной оптимизации - вполне вероятно, но как по мне лучше таки руками прописать:

int F(const SomeLargeType& x)
{
int n;
// ...
return n;
}

SomeLargeType a;
SomeLargeType b;
SomeLargeType c = a + b;

F(a);
F(c);

lester ★★★★ ()

Re: [C, C++, GCC] Передача параметров по ссылке или по значению

const SomeLargeType x это оксюморон Используй const SomeLargeType & x в любом случае. Для a+b тоже все корректно будет.

Reset ★★★★★ ()

Re: [C, C++, GCC] Передача параметров по ссылке или по значению

> Странно, вроде был случай, что компилятор ругался

msvc выдал варнинг, что это нестандартное расширение и что лучше так не делать - но таки скомпилил

lester ★★★★ ()

Re: [C, C++, GCC] Передача параметров по ссылке или по значению

неопытные плюсоиды -- такие плюсоиды... 

Сделай так:

int F(const SomeLargeType& x)

И радуйся жизни и лету! gcc это схавает и нормальное поймет (именно при обьявлении константной рефы), -- во втором случае в функцию будет передаватся const ref на временный обьект -- результат операции сложения a+b, после возврата из функции, будет удален и временный обьект. 

vnovouhov ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.