4
i
이 int
인 경우 ++i + ++i
과 같은 표현은 정의되지 않은 동작이므로 i
의 시퀀스되지 않은 수정이 2 개 있습니다. 그러나 i
이 일부 int
과 같은 클래스 인 경우 ++i + ++i
은 불확실한 순차적 수정을 가지므로 동작이 정의됩니다 (이 경우 결정적 결과가 있음). 불확실한 시퀀스가 아니라 원시 시퀀스에 대한 연산이 순차 화되지 않는 경우가 있습니까? 그렇다면이 경우가 사용자가 만든 유형에 적용되지 않는 이유는 무엇입니까? 그렇지 않다면 원시 연산은 왜 순차 화되지 않습니까?원시 타입에 대한 연산의 순서가 불확실하지 않은 이유는 무엇입니까?
정의되지 않은 동작이 발생하면 컴파일러에서 특정 클래스의 최적화를 적용 할 수 있습니다. 이러한 최적화가 UDT에 적용될 것 같지 않습니다. 일반적으로 ++ i는 함수 호출을위한 구문 설탕입니다. –