Когда тройной оператор подходит для копирования Elision?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Когда тройной оператор подходит для копирования Elision?

Сообщение Anonymous »

Согласно
этой статье
Raymond Chen, выражение Ternary не является кандидатом на копию Elision. < /p>

Проблема с тщательным Правило для тройных выражений заключается в том, что
Результат инициализируется из < /em> ветви выбранного тройного. Сделал еще несколько тестирования: < /p>
код (

Код: Выделить всё

struct Widget : WidgetBase
) Модифицированная из сообщения в блоге Рэймонда Чена теперь удален, так как оказывается, что это не имеет ничего общего с тройным оператором. Эта часть должна быть задана еще одним вопросом.#include
#include
#include
struct WidgetBase
{
// local mode
WidgetBase() {};

// remote mode
WidgetBase(std::string const& server)
:m_server(server)
{
std::cout
Godbolt < /p>
Есть еще одна особенно странная вещь: член Struct, похоже, влияет на то, выполняет ли MSVC копию Elision или нет!?

Если я удаляю std :: string m_server < /code> from widgetbase < /code>: < /p>
: < /p>


Подробнее здесь: https://stackoverflow.com/questions/797 ... py-elision
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»