gpt4 book ai didi

c++ - boost::detail::addr_impl_ref 的目的是什么?

转载 作者:行者123 更新时间:2023-11-28 03:58:19 24 4
gpt4 key购买 nike

在 boost 里面有 boost::detail::addr_impl_ref基本上有一个接受 T& 的构造函数的结构引用和重载 operator T&()返回该引用。它用于执行 boost::addressof() :

template<class T> T* addressof( T& v )
{
return boost::detail::addressof_impl<T>::f( boost::detail::addr_impl_ref<T>( v ), 0 );
}

boost::detail::addressof_impl<T>::f()接受 T&作为第一个参数。 boost::addressof<T>()还有T& v作为参数。

为什么是boost::detail::addr_impl_ref()此处用于存储和返回的临时对象 T&而不是仅仅传递 T& v

最佳答案

它防止 T 的其他隐式转换运算符成为转换的一部分。

编辑:例如:

struct foo
{
operator foo*()
{
return 0;
}
};

关于c++ - boost::detail::addr_impl_ref 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com