Здравствуйте, MShura, Вы писали:
MS>Я по-прежнему считаю, что использование = вместо := более логично (к тому-же меньше синтаксического оверхеда
Оно не более логично, и не менее логично. Это просто соглашение языка. С++ != математике! Вот и все!
А слова Вирта — это просто оправдание своей "хорошей идеи" которая не была принята практическими программистами.
Большинство современных языков используют именно "=" и их пользователи решительно не испытывают от этого проблем.
Проблемы от "=" есть только в С и С++ авторы которых были не соль дальновидны, чтобы предвидеть тот факт, что люди будут опечатываться в операторе if и писать вместо "==" "=".
Данная проблема устраняется двумя путями:
1. Введением более строкой типизации. Так сделано в C#. В нем никакое выражение отличное от булева не может приводиться к bool, а if всгда проверяет только булевы выражения. При этом проблемы все же возможны если оператор присвоения использовать для булевых переменных, но это не встречается на практике, так как сравнение с булевыми константами редко бывает осмысленно.
2. Запретом присвоений внутри выражений. Собственно Вирт и пользуется этим способом только зачем-то еще и синтаксически отделяет присвоение от сравнения. Между тем это не обязательно.
... << RSDN@Home 1.2.0 alpha rev. 637>>