假设我有类似于这个伪代码的东西:
std::optional<std::pair<double*, std::scope_lock<std::mutex> > > getDataTogetherWithLock() {
if (!some_ptr) {
return std::nullopt;
}
return some_ptr->getDataTogetherWithLock();//just returns std::pair<double*, std::scope_lock<std::mutex> >
}
这是行不通的,基本上如果尝试使用真实代码会给出关于返回类型无法转换为的错误std::optional
。
解决这个难题的最佳方法是什么?