// Example of expected-like types in C++
#include <iostream>
#include <variant>
#include <string>
template <typename T, typename E>
class Expected {
public:
Expected(T value) : result(value), is_error(false) {}
Expected(E error) : error_value(error), is_error(true) {}
bool isError() const { return is_error; }
T value() const { return result; }
E error() const { return error_value; }
private:
T result;
E error_value;
bool is_error;
};
Expected<int, std::string> divide(int numerator, int denominator) {
if (denominator == 0) {
return Expected<int, std::string>("Division by zero error");
}
return Expected<int, std::string>(numerator / denominator);
}
int main() {
auto result = divide(10, 0);
if (result.isError()) {
std::cout << "Error: " << result.error() << std::endl;
} else {
std::cout << "Result: " << result.value() << std::endl;
}
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?