2012-02-15 1 views

답변

9

C++ 11에는 시퀀스 포인트가 없으며, 관계가 성립되기 전에 순서가 지정되고 순서가 지정됩니다. 동작은 왜

int x = 10; 
++++x; // well defined in C++11 

int x = 10; 
x = ++x +1; //well defined in C++11 

03 C++ 사이 및 C++ (11)가 상이 여기

일부 사소한 예? this 답변 및 관련 스레드를 살펴보십시오.

4

가장 잘 알려진 예가 사전 증가 연산자라고 생각합니다.

int i = 0; 
++ ++ ++ i; 

C++ 03에서는 UB가되고 C++ 11에서는 다음 평가 전에 각 할당이 정렬됩니다.

차이점에 대한 표준 검색은 "순서 지정"용어를 "이전에 주문"을 선호하여 제거하고 처음부터 많은 규칙을 다시 작성하기 때문에 어려움이 있습니다.

+0

'표준을 검색하는 것이 "시퀀스 포인트"용어를 제거했기 때문에 어려웠습니다.이 질문을 게시 한 정확한 이유입니다. – shuttle87

+0

@ shuttle87 그래, 미안하지만, 적어도 하나의 예를 생각해 냈다. v) – Potatoswatter