前言
在许多C语言的接口中, 使用返回错误码的形式的接口很是常见, 但是很多时候, 接口调用者只需要关心接口调用结果是否成功, 而选择忽略返回值, 那有没有什么比较优雅的方式来调用这些接口呢?
C++11实现方式
template <typename T>
struct InvokeResult {
using value_type = typename std::remove_reference<T>::type;
bool success {
false};
value_type result {
};
InvokeResult(bool succ, T&& res): success(succ), result(std::forward<T>(res)) {
}
operator bool() const {
return success; }
operator value_type()