[C++] 쉼표 연산자 오버로딩
C++의 또 이상한 신택스중 하나다. 쉼표 연산자도 오버로딩이 된다.
이런게 왜 있는지 이해하려들 필요는 없다. 그냥 컨셉질하는거라 보면 된다.
쉼표 연산자는 기본적으로 이항연산자라서, 비멤버함수로도, 멤버함수의 형태로도 오버로딩을 할 수 있다.
이런식으로 만들어서 덧셈을 하거나, append를 하거나, 로깅을 하거나, 이상한 짓들을 할 수 있다.

그럼 이런식으로 쓸 수 있는 것이다.
이 경우엔 우선순위가 낮아서 괄호를 씌워줘야 했다.
그럼 잘 동작할 것이다.

찾아보니 배열이나 매트릭스 데이터를 다루는 서드파티 라이브러리들에서는 이걸로 괜찮은 할당식을 제공하긴 한다고 하더라.
이렇게 말이다.

테스트코드
#include <iostream>
using namespace std;
struct Integer {
int value;
};
Integer operator,(const Integer& lhs, const Integer&rhs) {
return Integer{ lhs.value + rhs.value };
}
int main()
{
auto a = Integer{ 10 };
auto b = Integer{ 20 };
auto c = Integer{ 30 };
auto d = Integer{ 40 };
Integer e = (a, b, c, d);
cout << e.value << endl;
}참조
https://stackoverflow.com/questions/5602112/when-to-overload-the-comma-operator