所以显然 C++20 正在获得std::to_address
.
从 cppreference 页面来看,它的用例对我来说似乎并不清楚。我们已经有了operator&
and std::addressof
,为什么我们还需要另一个函数来为我们的参数提供地址?
所以显然 C++20 正在获得std::to_address
.
从 cppreference 页面来看,它的用例对我来说似乎并不清楚。我们已经有了operator&
and std::addressof
,为什么我们还需要另一个函数来为我们的参数提供地址?
std::addressof
接受一个对象并获取它的地址,即使一元“地址运算符”(又名&
)被重载。
std::to_address
接受一个指针,智能或哑,并返回一个指针。
基本上在编写标准库时,在这种情况下分配器,实现者发现他们需要这个实用函数。它小而简单,每当有人想使用分配器时都必须编写它。所以他们写了一个简单的建议来添加它。
这里有一些陷阱;你不能这样做std::addressof(*ptr)
,因为*ptr
它并不总是一个对象。已经有一个 trait 可以解决这个问题,但是直接使用 trait 编写代码很烦人。
当他们还没有完成您最喜欢的功能时,为什么要这样做?喜欢网络?
相比之下,联网并不是一个简单的提议。而当前的设计依赖于执行器(基本上是线程池概念的抽象)。编写提供手工 C/ASM 性能的高级库的目标使得编写网络比 2 行实用程序函数更难。
然后有人抱怨说他们需要 15 分钟来批准一个不费吹灰之力的实用程序函数,因为多程序员年度史诗提案还没有出现。不公。
或类似的东西。