Czy ktoś może mi powiedzieć, co ta obsada ma dla efektu (poza ustawieniem happyNumber do 1337), jeśli w ogóle, i jeśli nie ma żadnego innego efektu, to dlaczego mogę napisać taki kod ??? Czy jest to błąd kompilatora, czy jakaś "ukryta funkcja" C++?Co się dzieje z static_cast z wieloma argumentami?
int happyNumber = static_cast<int>(123.456, TRUE, "WTF" , false , "IS" , NULL , "GOING" , 0xff , "ON???" , 1337);
Byłem zaskoczony, że to skompiluje się w ogóle. Znalazłem to poprzez błąd, w którym przypadkowo ustawiłem drugi parametr na coś, co miało przejść w wywołanie funkcji wyrażenia, które jest rzutowane. Spowodowało to nieprzyjemny błąd, gdy obiekt został rzucony z drugiego parametru, wywołując funkcję tylko z jednym argumentem. To skompilowany ... I początkowo nie bom ...
używam Microsoft Visual C++ 2008.
To całkowicie legalne i nie ma błędów. – Anonymous
Ach, tak, masz rację. To było tak dezorientujące, że wiedziałem, * że musi to być błąd kompilatora - którego nie było :) Nigdy wcześniej nie wpadłem na operatora przecinka. – Statement