这条警告消息是什么,“在读取之前,所有路径中都会重新分配局部变量sp
”。可能出现什么问题?
SerialPort sp("/dev/netlink6", B115200, loop);
sp.onRead = [&sim](std::string msg) {
for (auto c: msg) {
sim.process(c);
}
};
答案 0 :(得分:0)
该消息可能暗示可以将声明和赋值连接起来
int main()
{
int i = 0; // ReSharper: Local variable 'i' is reassigned in all paths before being read.
i = 5;
}
显然可以是int i = 5
。
无法通过简短的代码段说出导致您遇到此情况的原因。如果在构造函数中设置了成员onRead
,则不应引起ReSharper的消息:
class A
{
public:
int i;
A(const int i) : i(i) {}
};
int main()
{
A a(0);
a.i = 5; // No message regarding reassignment.
}