А как бы это выглядело на C? Спрашивайте чаще
Современные компиляторы дают массу полезных гарантий и делают часть работы за нас. Это хорошо, но у всего есть обратная сторона.
Нельзя сказать, что такая помощь провоцирует плохую архитектуру. Но она делает возможным написать плохо спроектированную программу – и не свихнуться.Как понять, что именно держит вашу программу – архитектура или компилятор?
habr.com