我想使用等效的std::pair<bool, std::string>
作为函数返回类型。在下游代码中,使用ok
andmsg
代替first
andsecond
访问器会更好,以避免不必要的 API 查找。而且我似乎无法使用继承正确编写它,因为std::pair
没有虚拟析构函数可能会泄漏。想要避免我自己的结构作为重命名 std::pair 成员中的解决方案- 重用现有的 Move 构造函数和其他管道。有可能吗?
编辑:
经过反馈似乎是推荐的方法是:
struct res {
bool ok;
std::string msg;
};
res fnk() { ...; return r };
我是否正确理解 C++11 编译器期望生成移动构造函数以避免复制字符串?