Пространства имён
Варианты
Действия

std::is_copy_assignable, std::is_trivially_copy_assignable, std::is_nothrow_copy_assignable

Материал из cppreference.com

 
 
 
Поддержка типов
Основные типы
Original:
Basic types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Основные типы
Исправлены типы целых ширину (C++11)
Числовые пределы
Original:
Numeric limits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
numeric_limits
С числовым ограничивает интерфейс
Время тип информации
Original:
Runtime type information
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Тип черты
Original:
Type traits
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Первичные категории типа
Original:
Primary type categories
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_void(C++11)
is_array(C++11)
is_pointer(C++11)
is_enum(C++11)
is_union(C++11)
is_class(C++11)
is_function(C++11)
is_object(C++11)
is_scalar(C++11)
is_compound(C++11)
is_integral(C++11)
is_floating_point(C++11)
is_fundamental(C++11)
is_arithmetic(C++11)
is_reference(C++11)
is_lvalue_reference(C++11)
is_rvalue_reference(C++11)
is_member_pointer(C++11)
is_member_object_pointer(C++11)
is_member_function_pointer(C++11)
Тип свойства
Original:
Type properties
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_const(C++11)
is_volatile(C++11)
is_pod(C++11)
is_empty(C++11)
is_polymorphic(C++11)
is_abstract(C++11)
Поддерживаемые операции
Original:
Supported operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_constructible
is_trivially_constructible
is_nothrow_constructible
(C++11)
(C++11)
(C++11)
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
(C++11)
(C++11)
(C++11)
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
(C++11)
(C++11)
(C++11)
is_move_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
(C++11)
(C++11)
(C++11)
is_assignable
is_trivially_assignable
is_nothrow_assignable
(C++11)
(C++11)
(C++11)
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
(C++11)
(C++11)
(C++11)
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
(C++11)
(C++11)
(C++11)
is_destructible
is_trivially_destructible
is_nothrow_destructible
(C++11)
(C++11)
(C++11)
has_virtual_destructor(C++11)
Отношения собственности и запросов
Original:
Relationships and property queries
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
is_same(C++11)
is_base_of(C++11)
is_convertible(C++11)
alignment_of(C++11)
rank(C++11)
extent(C++11)
Тип модификаций
Original:
Type modifications
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
remove_cv
remove_const
remove_volatile
(C++11)
(C++11)
(C++11)
add_cv
add_const
add_volatile
(C++11)
(C++11)
(C++11)
make_signed(C++11)
make_unsigned(C++11)
Тип преобразования
Original:
Type transformations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
aligned_storage(C++11)
aligned_union(C++11)
decay(C++11)
enable_if(C++11)
conditional(C++11)
common_type(C++11)
underlying_type(C++11)
result_of(C++11)
Введите черта констант
Original:
Type trait constants
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
integral_constant(C++11)
 
Заголовочный файл <type_traits>
template< class T >
struct is_copy_assignable;
(1) (начиная с C++11)
template< class T >
struct is_trivially_copy_assignable;
(2) (начиная с C++11)
template< class T >
struct is_nothrow_copy_assignable;
(3) (начиная с C++11)
1)
Проверяет, является ли тип CopyAssignable, т. е. имеет доступный явного или неявного копирования оператора присваивания. Если требование считается выполненным, член постоянной value равных true обеспечивается, в противном случае value является false.
Original:
Checks whether a type is CopyAssignable, i.e. has an accessible explicit or implicit copy assignment operator. If the requirement is met, a member constant value equal true is provided, otherwise value is false.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
2)
То же, 1), но оценка копирования выражения присваивания не буду называть любой операции, которая не является тривиальной.
Original:
Same as 1), but evaluation of the copy-assignment expression will not call any operation that is not trivial.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
3)
То же, 1), но оценки копирования выражения присваивания не буду называть любые операции, которые не noexcept.
Original:
Same as 1), but the evaluation of the copy-assignment expression will not call any operation that is not noexcept.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Содержание

Унаследован от std::integral_constant

Member constants

value
[static]
true если T is copy-assignable, false иначе
Original:
true if T is copy-assignable, false otherwise
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(public static константа-член)

Member functions

operator bool
преобразует объект в bool, возвращает value
Original:
converts the object to bool, returns value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(public функция-член)

Member types

Type
Original:
Type
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Definition
value_type bool
type std::integral_constant<bool, value>

[править] Возможная реализация

template< class T>
struct is_copy_assignable
    : std::is_assignable< typename std::add_lvalue_reference<T>::type,
                    const typename std::add_lvalue_reference<T>::type> {};
 
template< class T>
struct is_trivially_copy_assignable
    : std::is_trivially_assignable< typename std::add_lvalue_reference<T>::type,
                              const typename std::add_lvalue_reference<T>::type> {};
 
template< class T>
struct is_nothrow_copy_assignable
    : std::is_nothrow_assignable< typename std::add_lvalue_reference<T>::type,
                            const typename std::add_lvalue_reference<T>::type> {};

[править] Пример

#include <iostream>
#include <utility>
#include <type_traits>
struct Foo { int n; };
int main() {
    std::cout << std::boolalpha
              << "Foo is trivally copy-assignable? "
              << std::is_trivially_copy_assignable<Foo>::value << '\n'
              << "int[2] is copy-assignable? "
              << std::is_copy_assignable<int[2]>::value << '\n'
              << "int is nothrow copy-assignable? "
              << std::is_nothrow_copy_assignable<int>::value << '\n';
}

Вывод:

Foo is trivally copy-assignable? true
int[2] is copy-assignable? false
int is nothrow copy-assignable? true

[править] См. также

проверяет, является ли тип имеет оператор присваивания для конкретного аргумента
Original:
checks if a type has a assignment operator for a specific argument
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(шаблон класса) [edit]
проверяет, является ли тип имеет оператор ход назначения
Original:
checks if a type has a move assignment operator
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(шаблон класса) [edit]