Czy akceptuje się następujący kod?Czy mogę polegać na ocenie zwarć w celu sprawdzenia granic wektorowych w C++?
if(vector.size() > 0 && vector[0] == 3) {
}
Czy jest szansa, że ulegnie awarii, gdy wektor jest pusty? Nie zauważyłem, że to się dzieje, ale obawiam się, że wciąż jest to możliwe.
W porządku. Jak powiedziałeś, w grę wchodzi ocena zwarcia. Alternatywnie możesz użyć '! Vector.empty()' dla pierwszej części. – chris
Tak. Zwarcie jest dokładnie określone przez normę. –
możliwy duplikat gwarancji [Czy ocena skrótu w C++ jest taka, jak w Javie?] (Http://stackoverflow.com/questions/2108467/is-short-circuit-evaluation-guaranteed-in-c-as-it- is-in-java) – DazzaL