Re[7]: Инициализация.
От: Павел Кузнецов  
Дата: 23.09.04 22:40
Оценка:
Lapulya:

> Ну тут я и не спорю у меня сомнения по поводу этого

>
>
> inline A make_A(int a, int b)
> {
>    A temp = {a, b};
>    return temp;
> }
>
> SomeClass::SomeClass():
>    a(make_A(0, 10))
> {
> }
>


Компилятор вполне может в данном случае обойтись без создания временного объекта. Даже без встраивания функции make_A. Это называется NRVO (Named Return Value Optimization). Специально для поддержания этого и аналогичных случаев в стандарте есть указание что конструктор копирования может не быть вызван.
Posted via RSDN NNTP Server 1.9 gamma
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.