我不小心编译了一个如下所示的代码:
#include <iostream>
using namespace std;
struct Thing {
Thing(const int a) : a(a) {};
int a = -1;
void set_a(const int a) { this->a = a; };
};
void strange(Thing& t) {
t.set_a(-1), 2, t.set_a(3); // <-- ?
}
int main() {
Thing t(3);
strange(t);
std::cout << t.a; //output 3
return 0;
}
但为什么它首先编译?
,
在函数strange
的声明中的含义是什么?