2011-08-12 3 views
-2

switch 문에서 예상대로 (A? B : C)가 작동하지 않으면 인라인으로 힘든 방법을 발견했습니다.스위치에서 실패한 경우 C++ 인라인

여기서 A는 부울 값이고 B와 C는 모두 0이 아닌 정수입니다.이 명령문의 결과는 스위치 안에있을 때 0입니다.

이 동작이 언급 된 stackoverflow 게시물 [1]을 발견했지만 예상대로 작동하지 않는 이유에 대한 설명을 찾을 수 없습니다. 이 원인은 무엇입니까? 예를 들어

:

int foo = 6; 

switch(foo) 
{ 
case 6: 
    return 10 + true ? 2 : 4; 
} 

[1]

Benefits of inline functions in C++?
+9

무슨 뜻인지 예를 들어주세요. –

+6

"조건부 연산자"또는 "삼중 연산자"라고하며 "인라인 if"가 아닙니다. 링크 된 토론은 관련이없는 인라인 함수에 대한 것입니다. 몇 가지 코드를 게시하십시오. –

+1

'switch (a? b : c) {...}'를 의미합니까? – MSN

답변

4

switch로 할 뿐이다.

10 + (true ? 2 : 4) 

은 당신이 그런 식으로 작성해야합니다 : 당신처럼 행동하려면

(10 + true) ? 2 : 4. 

:

10 + true ? 2 : 4 

은 동일합니다.

+0

doh입니다! 나는 작은 예제에서 이것을 재현하는 데 왜 많은 어려움이 있었는지 궁금해했다. 고맙습니다! – puccha

관련 문제