Koenig, ну вообще это не велосипед, это правильная реализация. Языки программирования не должны допускать неоднозначности.