Тип возврата C ++, когда я не знаю, временный ли он

Предположим, что Foo - это довольно большие данные структура. Как мне написать виртуальную функцию const , которая возвращает экземпляр Foo , если я не знаю, будут ли унаследованные классы хранить экземпляр Foo внутри ; таким образом, позволяя возврат по ссылке. Если я не могу сохранить его внутри, я понимаю, что я не могу вернуть на него ссылку const , потому что она будет временной. Это правильно? Есть два варианта:

virtual Foo foo() const { ... }
virtual Foo const & foo() const { ... }

Вот вопрос, связанный с , но под другим углом.

12
задан Community 23 May 2017 в 10:33
поделиться