gpt4 book ai didi

c++ - 是否有针对 boost::bind 的 QPointer 特化

转载 作者:搜寻专家 更新时间:2023-10-31 00:49:40 25 4
gpt4 key购买 nike

boost::bind 以与原始指针相同的方式处理 boost::shared_ptr

QObject * object(new QObject);
boost::shared_ptr<QObject> sharedObject(new QObject);

bind(&QObject::setObjectName, object, _1)( "name" );
bind(&QObject::setObjectName, sharedObject, _1)( "name" );

我希望有一个 boost::bind 来处理 QPointers 作为原始指针指针。

QPointer<QObject> guardedObject(new QObject);    
// i want to write it like this
bind(&QObject::setObjectName, guardedObject, _1)( "name" );
//now i have to do it like this
bind(&QObject::setObjectName, bind(&QPointer<QObject>::data, guardedObject), _1)( "name" );

有没有做过QPointer特化的?

如果没有,您知道从哪里开始或需要专攻什么,所以我可以自己做。

最佳答案

添加 get_pointer 的重载函数应该可以解决问题:

namespace boost {
template<typename T> T * get_pointer(QPointer<T> const& p)
{
return p;
}
}

关于c++ - 是否有针对 boost::bind 的 QPointer 特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981087/

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