QT开发中文网

bda function: | ../dbus-sensors/src/DiscreteEvent.hpp:342:40: error: no match for 'operator==' (operand types are 'std::variant' and 'const std::__cxx1...

根据您提供的错误信息,问题出在尝试将 std::variant 类型的对象 expectedValuestd::string 进行比较。解决这个问题需要确保比较的两个对象具有相同的类型。

在你的情况下,expectedValue 是一个 std::variant<std::string, unsigned char> 类型的变量,而 val 是一个包含字符串的 std::string 对象。

为了解决这个问题,您可以通过以下步骤进行操作:

  1. 检查 expectedValue 中当前存储的类型,并针对不同类型分别进行处理:
if (std::holds_alternative<std::string>(expectedValue)) {
    std::string expectedStringValue = std::get<std::string>(expectedValue);
    if (expectedStringValue == std::get<std::string>(val)) {
        // 执行相应操作
    }
} else if (std::holds_alternative<unsigned char>(expectedValue)) {
    unsigned char expectedUCharValue = std::get<unsigned char>(expectedValue);
    // 处理 unsigned char 类型
} else {
    // 其他情况处理
}

通过以上方式,您可以根据实际存储类型正确比较值并执行相应逻辑。希望这能帮助您解决问题。如有任何疑问,请随时提出。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=12337

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?