to_address的特定用例

时间:2019-06-07 11:44:13

标签: c++ c++20 address-operator

因此,显然C ++ 20正在获得std::to_address

在cppreference页面上,其用例对我而言似乎并不明确。我们已经有了operator&std::addressof,为什么我们还需要另一个函数来为其参数提供地址?

1 个答案:

答案 0 :(得分:27)

std::addressof获取一个对象并获取其地址,即使一元的“ addressof operator”(又名&)已超载。

std::to_address获取一个聪明或愚蠢的指针,并返回一个指针。

基本上,在编写std库时,在这种情况下是分配器,实现者发现他们需要此实用程序功能。它小巧,简单,每当有人要使用分配器时都必须编写它。因此,他们写了一个轻松的建议来添加它。

这里有一些陷阱。您不能执行std::addressof(*ptr),因为*ptr并不总是对象。已经有一个特质可以解决此问题,但是直接使用特质编写代码很烦人。


为什么还没有完成您喜欢的功能呢?喜欢联网吗?

相比之下,网络化并非一帆风顺。当前的设计取决于执行者(基本上是线程池概念的抽象)。编写具有手工C / ASM性能的高级库的目标使编写网络比2行实用程序功能更难。

然后有人抱怨说,他们花了15分钟才能批准一个不费吹灰之力的实用程序功能,因为还没有多程序员年度史诗般的提议。不公。

或者类似的东西。