在根据可用的规范in this Wiki实现C++ 17的std::any时,我偶然发现了一些对我来说似乎毫无意义的东西:

自由函数std::any_castIn the definition,用于从std::any实例检索值,提供了 r值引用的重载(这是第三个):

template< class ValueType >
ValueType any_cast(any&& operand); // (3)

现在,大纲下方列出了一个要求,该要求适用于重载2和重载3(这也意味着包括r值重载):



定义似乎实际上并未允许 move 数据!

该函数调用只是重定向到基于指针的重载。有关operand 的临时性质的信息会丢失!

是否打算我不能移出任何实例?这只是Wiki中的错误吗?我在这里错了吗?

最佳答案

在撰写本文时,问题是 WP 的状态which means:



有关更多信息,请参见此处的lwg:http://wg21.cmeerw.net/lwg/issue2509

拟议的决议确实是



列出WP的缺陷报告列表为:http://cplusplus.github.io/LWG/lwg-defects.html#2509

07-24 14:06