template <class T>
struct is_nothrow_move_assignable : public true_type-or-false_type
{};
Наследники:Если<T
>является (возможно, cv-квалифицированным) типом с назначением-оператором без перемещения или типом без назначения-оператора с перемещением, но с не бросанием-оператором, то наследуется отtrue_type, в противном случае наследуется отfalse_type. Тип<T
>должен быть полным.
Иными словами, наследуется отtrue_typeтолько в том случае, если выражение<variable1=std::move(variable2)
>не бросит<variable1
>и<variable2
>являются переменными типа<T
>.
Совместимость компилятора:Если компилятор не поддерживает частичную специализацию шаблонов классов, то этот шаблон нельзя использовать с типами функций.
Без некоторой помощи компилятора (C++11)<is_nothrow_move_assignable
>никогда не сообщит о том, что класс или структура имеет оператор назначения без броска; это всегда безопасно, если возможно, неоптимально. В настоящее время (июнь 2015 года) MSVC-12.0, Clang и GCC 4.7 имеют необходимую поддержку компилятора, чтобы эта черта «просто работала».
Заголовок:<#include
<boost/type_traits/is_nothrow_move_assignable.hpp>
>или<#include<boost/type_traits.hpp>
>