August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
一个optional<A>可看作一种特殊的variant(类似于一个variant<A,nothing>),或看作一个指针A*要么指向某个对象要么为nullptr的思想的一种推广。
对于可能返回一个对象也可能什么都不返回的函数,optional是很有用的:
有了这个版本,我们就可以这样编写如下代码:
这种风格对一些不喜欢异常(参见3.5.3节)的人很有吸引力。注意对*的奇怪使用——optional被当作指向对象的指针而非对象本身。
空optional对象{}等价于nullptr。例如:
如果我们试图访问一个未保存值的optional,结果是未定义的——不会有异常抛出。因此,optional不保证类型安全。
Read now
Unlock full access