diff options
author | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-11-07 17:37:10 +0300 |
---|---|---|
committer | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-11-07 18:03:42 +0300 |
commit | 5132a4c0b62c856f50d0ff67c379eea66b36dde5 (patch) | |
tree | 5fa439116d82f8f668b517ee5b21921cf724ec39 /ya.conf | |
parent | 7260302093d21007fa4327c53b5c4c4623054daa (diff) | |
download | ydb-5132a4c0b62c856f50d0ff67c379eea66b36dde5.tar.gz |
YT-20165: New overloads of ```operator <<``` and ```Wrap``` for ```TError``` and unit tests
Что тут появилось:
1) Теперь есть перегрузки ```operator <<=``` с сигнатурой ```(TError&, TSmth&&)```, где ```TSmth``` -- это один из 7 типов, которые были раньше в ```operator <<```.
2) Операторы ```<<``` выражены через ```<<=```. Для них есть шаблонизированные перегрузки по ```const TError&``` и ```TError&&```.
3) Функция-член ```TError::Wrap``` теперь имеет перегрузку по ```const &``` и ```&&```, а еще обзавелась проверкой концепта в сигнатуре.
4) Макрос ```THROW_ERROR_EXCEPTION_IF_FAILED``` теперь использует перегрузку по ```&&```, то есть поглощает ```TError```, но только в случае, если в нем лежит ошибка.
5) Макрос ```THROW_ERROR``` использует специальный адаптер, который позволяет писать права от него все, что угодно, от чего можно сконструировать ```TError```.
6) Все операторы ```<<``` и ```<<=``` стали функциями-членами -- больше нельзя делать с ними неявные конверсии, кроме специального адаптора в ```THROW_ERROR```.
Diffstat (limited to 'ya.conf')
0 files changed, 0 insertions, 0 deletions