gpt4 book ai didi

c++ - 区分 boost::bind 中具有相同名称的 const 和非常量方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:22 24 4
gpt4 key购买 nike

例如,当我将 boost::bind 与一个既声明为 const 又声明为非 const 的方法名称一起使用时,我遇到了不明确的错误,例如

boost::bind( &boost::optional<T>::get, _1 )

我该如何解决这个问题?

最佳答案

问题和解决方法在 Boost.Bind 的常见问题解答部分进行了描述引用。

您还可以使用如下实用函数:

#include <boost/bind.hpp>
#include <boost/optional.hpp>

template <class Ret, class Obj>
Ret (Obj::* const_getter(Ret (Obj::*p) () const)) () const
{
return p;
}

template <class Ret, class Obj>
Ret (Obj::* nonconst_getter(Ret (Obj::*p)())) ()
{
return p;
}

int main()
{
boost::bind( const_getter(&boost::optional<int>::get), _1 );
boost::bind( nonconst_getter(&boost::optional<int>::get), _1 );
}

关于c++ - 区分 boost::bind 中具有相同名称的 const 和非常量方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261026/

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