Size: a a a

2020 October 02

MV

Maxim Voloshin in pro.cxx
Все равно потом свичем разбирать
источник

PS

Pavel Samolysov in pro.cxx
В коде LLVM применяют такой подход, про которых говорит Александр, может быть будет полезно, вот описание их класса https://llvm.org/doxygen/classllvm_1_1Expected.html а вот - самого подхода For functions that can fail but need to return a value the Expected<T> utility can be used. Values of this type can be constructed with either a T, or an Error. Expected<T> values are also implicitly convertible to boolean, but with the opposite convention to Error: true for success, false for error. If success, the T value can be accessed via the dereference operator. If failure, the Error value can be extracted using the takeError() method. https://llvm.org/docs/ProgrammersManual.html#recoverable-errors
источник

AG

Alexander Galagutski... in pro.cxx
Зависит от того нужны ли детали
источник

ID

In Dev in pro.cxx
Maxim Voloshin
Зачем вариант?
Я так понял это что-то вроде std::expected предлагается
источник

MV

Maxim Voloshin in pro.cxx
Вариант это Rust way с паттерн матчингом, мне кажется не надо это усложнять. В Rust это стандартный способ прибитый к языку гвоздями, в этом случае это излишне
источник

ID

In Dev in pro.cxx
Pavel Samolysov
В коде LLVM применяют такой подход, про которых говорит Александр, может быть будет полезно, вот описание их класса https://llvm.org/doxygen/classllvm_1_1Expected.html а вот - самого подхода For functions that can fail but need to return a value the Expected<T> utility can be used. Values of this type can be constructed with either a T, or an Error. Expected<T> values are also implicitly convertible to boolean, but with the opposite convention to Error: true for success, false for error. If success, the T value can be accessed via the dereference operator. If failure, the Error value can be extracted using the takeError() method. https://llvm.org/docs/ProgrammersManual.html#recoverable-errors
В моем случае std::error_code это прямо буквально то, что нужно. Вопрос не в том, какой подход использовать, а собственно в производительности данного подхода, в частности при возврате из функции. Где-то читал, что там все не так же просто, как например при возврате инта. Потому и спрашиваю.
источник

ID

In Dev in pro.cxx
Думал, может кто сталкивался
источник

AG

Alexander Galagutski... in pro.cxx
Pavel Samolysov
В коде LLVM применяют такой подход, про которых говорит Александр, может быть будет полезно, вот описание их класса https://llvm.org/doxygen/classllvm_1_1Expected.html а вот - самого подхода For functions that can fail but need to return a value the Expected<T> utility can be used. Values of this type can be constructed with either a T, or an Error. Expected<T> values are also implicitly convertible to boolean, but with the opposite convention to Error: true for success, false for error. If success, the T value can be accessed via the dereference operator. If failure, the Error value can be extracted using the takeError() method. https://llvm.org/docs/ProgrammersManual.html#recoverable-errors
Да похоже на правду - стандартная реализация Try/Either
источник

AG

Alexander Galagutski... in pro.cxx
In Dev
В моем случае std::error_code это прямо буквально то, что нужно. Вопрос не в том, какой подход использовать, а собственно в производительности данного подхода, в частности при возврате из функции. Где-то читал, что там все не так же просто, как например при возврате инта. Потому и спрашиваю.
В таком случае лучшим решением написать функцию и померять производительность
источник

MV

Maxim Voloshin in pro.cxx
Ну это вернуть или результат или ошибку
источник

ID

In Dev in pro.cxx
Alexander Galagutskiy
Да похоже на правду - стандартная реализация Try/Either
Было бы здорово попробовать, если бы std::expected прошел в двадцатый. Но не в данном кейсе
источник

PS

Pavel Samolysov in pro.cxx
И тот факт, что упрется именно в возврат значения, а не время работы самой функции
источник

MV

Maxim Voloshin in pro.cxx
А не "прикрутить кастомные коды"
источник

ПК

Побитый Кирпич... in pro.cxx
In Dev
В моем случае std::error_code это прямо буквально то, что нужно. Вопрос не в том, какой подход использовать, а собственно в производительности данного подхода, в частности при возврате из функции. Где-то читал, что там все не так же просто, как например при возврате инта. Потому и спрашиваю.
Забей и используй то что удобнее
источник

ID

In Dev in pro.cxx
Побитый Кирпич
Забей и используй то что удобнее
Но скорость жи...
источник

ПК

Побитый Кирпич... in pro.cxx
In Dev
Но скорость жи...
А что с ней?
источник

ID

In Dev in pro.cxx
Побитый Кирпич
А что с ней?
Если медленно - не покатит
источник

ПК

Побитый Кирпич... in pro.cxx
In Dev
Если медленно - не покатит
Вот  будет медленно - тогда и приходите
источник

ID

In Dev in pro.cxx
Поздно будет переделывать, это в интерфейсе библиотечки)
источник

ID

In Dev in pro.cxx
Но да, придется тестить, раз никто не знает
источник