【发布时间】:2012-10-08 06:22:13
【问题描述】:
我有一个getter对象,它返回一个Type类型的对象,定义如下:
typedef boost::variant<int, std::string> Empty;
通常情况下,我既没有要返回的 int 也没有要返回的字符串,而是必须返回一个空状态。你认为我如何返回这个状态?
a) typedef 一个 Empty 类型并将其添加到变体中:boost::variant<int, std::string, Empty>。
b) 返回类型()
c) 抛出异常
d) 返回一个 boost::shared_ptr,在为空的情况下指向 NULL。
【问题讨论】:
-
这个“空类型”是由
boost::empty提供的,事实上,当且仅当当前值是@987654327 时,variant的.empty()函数才会return为真@ 类型。在所有其他情况下,它将返回false。