std::experimental::optional<>是否支持引用?

11

目前,boost::optional<>支持引用,但我的系统中的libstdc++的std::experimental::optional<>不支持。这反映了标准可能采取的做法吗?

我知道optional提案的作者将可选的引用作为一个单独的提案分离出来,以使主要的optional提案更有机会被接受。是可选参考的提案被拒绝了还是停止了工作?


3
可以随时使用std::reference_wrapper。支持“裸”引用将打开一个让自己乱搞的可能性维度。 - bobah
1
@bobah,我会在我的答案中提及您的评论。您可以吗? - skypjack
2
@skypjack - 当然没问题 :-) - bobah
1
@bobah 好建议。可选引用为什么更容易悬挂而不是常规引用?我没有看出来。 - Praxeolitic
1
@Praceolitic - 将引用包装器无意地粘贴到容器上并不像普通引用那样容易,并且当容器被分配为类型T的值或类型reference_wrapper<T>()的值时,该怎么做是明确无误的。 - bobah
1个回答

8

这是否反映了可能进入标准的内容?

来自工作草案 ([20.5.2/1]):

需要模板实例化用于引用类型的程序[...]是不合法的。

我猜这回答了你的问题。

请注意,您仍然可以通过使用std::reference_wrapper来解决该问题,如评论中所提到的@bobah。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接