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

cpp/error/system error/operator= — различия между версиями

Материал из cppreference.com
< cpp‎ | error‎ | system error
(Новая страница: «{{cpp/error/system_error/title|operator{{=}}}} {{cpp/error/system_error/navbar}} {{ddcl|since=c++11|1= system_error& operator=( const system_error& other ) noexce…»)
 
 
Строка 5: Строка 5:
 
}}
 
}}
  
Присваивает содержимое из {{tt|other}}. Если {{tt|*this}} и {{tt|other}} имеют динамический тип {{tt|std::system_error}}, тогда {{c|1=std::strcmp(what(), other.what()) == 0}} после присваивания.
+
Присваивает содержимое из {{|other}}. Если {{|*this}} и {{|other}} имеют динамический тип {{tt|std::system_error}}, тогда {{c|1=std::strcmp(what(), other.what()) == 0}} после присваивания.
  
 
===Параметры===
 
===Параметры===
Строка 16: Строка 16:
  
 
===Пример===
 
===Пример===
{{example}}
+
{{example
 +
 +
 +
 +
 +
 
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 
 +
 +
 +
 
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 
 +
 +
 +
 +
 
 +
 +
 +
 +
}}
  
 
{{langlinks|en|es|ja|zh}}
 
{{langlinks|en|es|ja|zh}}

Текущая версия на 22:06, 27 августа 2023

 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Библиотека диагностики
Обработка исключений
Сбои обработки исключений
(до C++17*)
(до C++17*)
(C++11)(до C++17*)    
(до C++17*)
Коды ошибок
Коды ошибок
Категории исключений
(ТС TM)
Поддержка системных ошибок
(C++11)
(C++11)
Утверждения
Трассировка стека
 
std::system_error
Функции-элементы
system_error::operator=
 
system_error& operator=( const system_error& other ) noexcept;
(начиная с C++11)

Присваивает содержимое из other. Если *this и other имеют динамический тип std::system_error, тогда std::strcmp(what(), other.what()) == 0 после присваивания.

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

other другой объект system_error для присваивания

[править] Возвращаемое значение

*this

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

#include <cassert>
#include <cstring>
#include <iostream>
#include <system_error>
 
void print(const std::system_error& e)
{
    std::cout << "code:    [" << e.code() << "]\n"
                 "message: [" << e.code().message() << "]\n"
                 "what:    [" << e.what() << "]\n\n";
}
 
int main()
{
    std::system_error e1(EDOM, std::generic_category(), "Информация об ошибке #1");
    print(e1);
 
    std::system_error e2(EIO, std::system_category(), "Информация об ошибке #2");
    print(e2);
 
    e1 = e2;
    assert(std::strcmp(e1.what(), e2.what()) == 0);
    print(e1);
}

Возможный вывод:

code:    [generic:33]
message: [Numerical argument out of domain]
what:    [Информация об ошибке #1: Numerical argument out of domain]
 
code:    [system:5]
message: [Input/output error]
what:    [Информация об ошибке #2: Input/output error]
 
code:    [system:5]
message: [Input/output error]
what:    [Информация об ошибке #2: Input/output error]