원하는건 first가 먼저 출력 되는건데
second가 먼저출력 되네
이렇게 하면 원하는데로 나오긴 하던데 먼가 더 좋은 방법 없을까
함수 인자 평가를 오른쪽에서 왼쪽으로 하나봄
해결책 올려봤는데 다른 방법도 있을까?
local_i 안만들고 func(vec[i], vec[i+1]) 하면 되지 안흠?
아 내가 ++랑 +=만 써봤지 +1 써볼 생각을 안했네 ㅋㅋㅋ 고맙다, 나 진짜 빡대가리인가봐
ub임
다시 확인해보니 C++17 부터는 ub 아님
함수 인자 평가를 오른쪽에서부터 왼쪽으로 하는게 표준임?
함수 인자 평가 순서는 아직도 ub임. 저 상황에선 i, i++ 둘 다 i를 가리키기에 first, first가 나와야 정상임
ub면 머가나와도 정상이지 ㅋㅋ
i++ 후 i 실행되는데 왜 둘다 같은값 나오는게 정상이냐
i++ 후에 i가 평가된다는 게 표준에서 어디 나옴?
정리하자면 C++17 이전은 ub고 C++17부터 unspecified인데 실질적으로 ub임. first, first가 정상이라는 건 잘못 말함. 뭐가 나와도 컴파일러 마음임. GCC는 second, first로 나오고 Clang은 first, first로 나온다
++i - dc App
이거 하면 둘다 second로 나옴
이상하네 인자 둘다 0번 인덱스아닌가? i는 마지막에 1로 바뀌고 - dc App
오른쪽먼저평가되서 [i++] 먼저실행 그담에[i]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=4717010&logNo=60207441576- dc App
vec[i++]하면 i가 나중에 증가할텐데 - dc App
vec[i++]이 평가된 다음에 vec[i]가 평가될수 있다는 소리임 그러면 i는 이미 증가한 상태로 vec[i]가 평가됨
폰트머냐
cascadia mono
걍 func(vec[i], vec[i+1]); ++i; 하면 되는 거 아니냐
UB - dc App
첨자 안에 ++을 넣는 것을 최대한 자제하셈 - dc App
함수 인자 평가를 오른쪽에서 왼쪽으로 하나봄
해결책 올려봤는데 다른 방법도 있을까?
local_i 안만들고 func(vec[i], vec[i+1]) 하면 되지 안흠?
아 내가 ++랑 +=만 써봤지 +1 써볼 생각을 안했네 ㅋㅋㅋ 고맙다, 나 진짜 빡대가리인가봐
ub임
다시 확인해보니 C++17 부터는 ub 아님
함수 인자 평가를 오른쪽에서부터 왼쪽으로 하는게 표준임?
함수 인자 평가 순서는 아직도 ub임. 저 상황에선 i, i++ 둘 다 i를 가리키기에 first, first가 나와야 정상임
ub면 머가나와도 정상이지 ㅋㅋ
i++ 후 i 실행되는데 왜 둘다 같은값 나오는게 정상이냐
i++ 후에 i가 평가된다는 게 표준에서 어디 나옴?
정리하자면 C++17 이전은 ub고 C++17부터 unspecified인데 실질적으로 ub임. first, first가 정상이라는 건 잘못 말함. 뭐가 나와도 컴파일러 마음임. GCC는 second, first로 나오고 Clang은 first, first로 나온다
++i - dc App
이거 하면 둘다 second로 나옴
이상하네 인자 둘다 0번 인덱스아닌가? i는 마지막에 1로 바뀌고 - dc App
오른쪽먼저평가되서 [i++] 먼저실행 그담에[i]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=4717010&logNo=60207441576
- dc App
vec[i++]하면 i가 나중에 증가할텐데 - dc App
vec[i++]이 평가된 다음에 vec[i]가 평가될수 있다는 소리임 그러면 i는 이미 증가한 상태로 vec[i]가 평가됨
폰트머냐
cascadia mono
걍 func(vec[i], vec[i+1]); ++i; 하면 되는 거 아니냐
UB - dc App
첨자 안에 ++을 넣는 것을 최대한 자제하셈 - dc App