gpt4 book ai didi

c++ - 接受 lambda 作为参数的类方法 - 错误消息

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:34 24 4
gpt4 key购买 nike

我尝试创建这样的方法:

WeaponsDatabase
{
public:

template<typename Functor>
QList<const WeaponData*> getSpecificWeapons(Functor criterium);
};
template<typename Functor>
QList<const WeaponData*> WeaponsDatabase::getSpecificWeapons(Functor criterium)
{
QList<const WeaponData*> weaponsForCriterium;

foreach (const WeaponData *weapon, weapons)
{
if (criterium(weapon))
{
weaponsForCriterium.append(weapon);
}
}

return weaponsForCriterium;
}

似乎没问题,它编译了。然后我尝试在其他地方使用它:

auto criterium = [hardpoint](const WeaponData *weapon)->bool
{
return weapon->hardpoint == hardpoint;
};

WeaponsDatabase::getInstance().getSpecificWeapons(criterium);

它不起作用,我不明白错误消息。各位大侠能帮我解释一下吗?

In file included from ..\equipmentgroupwidget.cpp:3:0:
..\weaponsdatabase.h:35:57: error: 'QList<const WeaponData*> WeaponsDatabase::getSpecificWeapons(Functor) [with Functor = EquipmentGroupWidget::EquipmentGroupWidget(const QString&, QWidget*)::<lambda(const WeaponData*)>]', declared using local type 'EquipmentGroupWidget::EquipmentGroupWidget(const QString&, QWidget*)::<lambda(const WeaponData*)>', is used but never defined [-fpermissive]
template<typename Functor> QList<const WeaponData*> getSpecificWeapons(Functor criterium);

最佳答案

@WernerHenze 的所有学分 - 将实现移到类中解决了问题。非常感谢你,伙计。

关于c++ - 接受 lambda 作为参数的类方法 - 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380792/

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