+Для обеспечения строгой гарантии безопасности исключений, в зависимости от того, помечен ли move-конструктор `T` спецификатором `noexcept`, может потребоваться вместо него вызывать конструктор копирования. Чтобы не копировать лишний раз, предлагается воспользоваться функцией из стандартной библиотеки [`std::move_if_noexcept(x)`](https://en.cppreference.com/w/cpp/utility/move_if_noexcept), которая действует как `std::move` тогда и только тогда, когда конструктор перемещения для `x` помечен `noexcept`. Когда вы познакомитесь с шаблонами, вы научитесь и сами реализовывать подобные функции.
0 commit comments