C ++ const lvalue ссылки

Предполагая, что у меня есть:

  • класс A, который не копируется
  • класс B, который имеет в качестве члена const A & a (и принимает A в своем конструкторе и устанавливает его в свой список инициализации )
  • функция A GenerateA ();

Означает ли это, что она должна быть допустимой для выполнения: B (GenerateA ()) ?

т.е. означает ли const ref, что копия A, возвращаемого функцией generateA (), не выполняется? И означает ли это, что объем возвращаемого временного объекта расширяется до тех пор, пока существует B?

РЕДАКТИРОВАТЬ: Дополнительный вопрос из комментариев: Допустимо ли возвращать A & из GenerateA () в локальный A, если lvalue является const A &?

Спасибо!

9
задан please delete me 10 November 2010 в 04:59
поделиться