Код: Выделить всё
class MyClass {
public:
enum class error {
e1 // ...
};
using index_return_type = std::expected;
index_return_type add_data(data d);
index_return_type update_data(data d);
private:
std::expected expand_to_fit(data) {
// Imagine i fail here
return std::unexpected{error::e1};
}
};
Код: Выделить всё
index_return_type add_data(data d) {
if (auto it_fit = expand_to_fit(d); !it_fit) {
return std::unexpected{it_fit.error()};
}
// The rest of the function
}
Но мне это не нравится.
- Имя it_fit произвольное, что, если оно подошло бы, но функцияexpand_to_fit не удалась по другим причинам? Это делает этот код трудным для чтения (и немного обманчивым).
- Эргономика этой маленькой проверки кажется немного грубой, так как ее приходится писать по всему коду, и это усложняет код. читайте imo.
Подробнее здесь: https://stackoverflow.com/questions/791 ... call-stack
Мобильная версия