Как эффективно использовать std::variant для обработки ошибок в C++?C++

Программы на C++. Форум разработчиков
Anonymous
Как эффективно использовать std::variant для обработки ошибок в C++?

Сообщение Anonymous »

Недавно я начал изучать использование std::variant в современном C++ (C++17 и более поздних версиях) для обработки ошибок и одновременного возврата значений из функций, что чем-то похоже на результат в Rust тип. Я понимаю основы использования std::variant, но мне нужны эффективные и элегантные шаблоны, специально предназначенные для обработки ошибок.
Вот что я попробовал далеко:

Код: Выделить всё

#include 
#include 
#include 

using Result = std::variant;

Result computeValue(int x) {
if (x < 0) {
return "Negative input error";
}
return x * 2;
}

void handleResult(const Result& result) {
std::visit([](auto&& arg) {
using T = std::decay_t;
if constexpr (std::is_same_v) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78661552/how-to-efficiently-use-stdvariant-for-error-handling-in-c[/url]

Вернуться в «C++»