struct도 copy elision이 일어나나요?

vani2의 이미지

C++ 공부중 의문점이 생겨서 질문해 봅니다.

클래스 이스턴스의 경우 함수의 parameter로 전달될 경우(reference 아님) 컴파일러의 기능중 하나인 copy elision이 일어난다고 했는데
이는 union이나 struct도 적용이 되나요? (RVO 기능 포함)

struct Temp {
int a, b, c;
};

void TestFunc(Temp t) {
...
}

klara의 이미지

C++의 struct와 class 는 기본 접근제한자가 public이냐 private냐의 차이밖에 없습니다.
union은 모르겠네요.

vani2의 이미지

아하.

감사합니다