我正在使用C ++ Qt应用程序。为了在应用程序或所连接的设备出现故障时为用户提供帮助,该程序会导出所有内部设置,并将它们存储在一个普通文件中(此刻为csv)。然后将该文件发送给公司(例如,每封邮件)。
为了避免对导出的设置进行不注意的操作(例如,导出后由用户手动操作),我需要某种机制来检测到这一点。
该方法应尽可能简单,因为这不是非常关键的信息,但仍然有效。
我能想到的只是散列或加密,但是我很确定已经有一个简单而优雅的解决方案。
我真的不明白为什么我必须b在反演后对变量进行类型转换(一元operator ~).任何人都可以解释为什么需要它吗?
unsigned char a = 0xFF;
unsigned char b = 0x00;
return (a == (~b)); //expected to return 1 but 0
...
return (a == (unsigned char)(~b)); //after typecast returns 1 as expected
Run Code Online (Sandbox Code Playgroud) 我有一个指向对象的指针,我传递给lambda函数.因为lambda函数在初始方法调用之后被调用1秒,所以该对象有时不再有效,从而导致分段错误.
在使用它之前,如何验证该项在lambda函数中是否仍然有效?
这是我使用lambda函数的方法的样子:
void myTab::myMethod(QStandardItem *item)
{
QColor blue(0, 0, 128, 20);
QBrush brush(blue);
item->setBackground(brush);
//Restore background after 1000ms
QTimer::singleShot(1000, [item, this]() mutable {
item->setBackground(Qt::transparent); //<-need some advice here
});
}
Run Code Online (Sandbox Code Playgroud)