是否有标准的C++函数,类似于Address-of运算符&?

Ant*_*yko 3 c++ stl functor memory-address

是否有一个标准的C++函数,它类似于Address-of运算符&,我可以用作stl实体的函数对象,如std :: transform和std :: compose1?

jua*_*nza 7

std::addressof可以满足你的目的.请注意,operator&如果类型具有该运算符的重载,则行为与plain略有不同.


Ton*_*ion 6

我想你要找的是std::addressof.

  • @mezhaka:在C++ 03中你只需编写自己的或使用Boost.它并不复杂,诀窍就是通过强制转换为`char&`来避免`T`上的任何`operator &`重载,获取地址,然后转回`T*`.如果你不需要"真实"地址(即你很乐意调用重载的`运算符&`)那么它甚至更简单:`template <typename T> T*&符号(T&t){return&t; }`. (2认同)