const auto lambda = [&settingsConst](Settings& settings)->int {
settings = std::move(settingsConst);
return 0;
};
.
.
.
}
нет, так как std::move(const&) == const &&
в этом примере должен вызваться Foo& operator=(const Foo&&) (который никакой разумный человек не реализовывает) а за неимением: Foo& operator=(const Foo&) или Foo& operator=(Foo&&). так как const убрать нельзя неявно, вызовется просто конструктор копирования
Обсуждают сегодня