누구나이 캐스트가 1337에 happyNumber를 설정하는 것 외에 어떤 영향을 미치는지 말해 줄 수 있습니까? 다른 효과가없는 경우 어떻게 이런 코드를 작성할 수 있습니까 ??? 이것은 컴파일러 버그입니까, 아니면 C++의 숨겨진 기능입니까?여러 인수가있는 static_cast는 어떻게됩니까?
int happyNumber = static_cast<int>(123.456, TRUE, "WTF" , false , "IS" , NULL , "GOING" , 0xff , "ON???" , 1337);
나는 이것이 전혀 컴파일되지 않을 것이라고 놀랐다. 실수로 두 번째 매개 변수를 설정하는 버그를 발견했습니다.이 매개 변수는 캐스팅되는 식의 함수 호출로 이동하기위한 것이 었습니다. 이로 인해 객체가 두 번째 매개 변수에서 형 변환되고 하나의 인수 만 사용하여 함수를 호출하는 불쾌한 버그가 발생했습니다. 그것은 컴파일 ... 그리고 처음에 나는의 Microsoft Visual C++ 2008
완벽하게 합법적이며 버그가 없습니다. – Anonymous
아, 네 말이 맞아. 그것은 나에게 너무 혼란스러워서 컴파일러 버그가되어야한다는 것을 알았습니다. 전에는 콤마 연산자를 사용하지 않았습니다. – Statement