Re[7]: так компайл тайм рефлекшину быть 26-й стандарт ??
От: B0FEE664  
Дата: 19.03.26 15:07
Оценка:
Здравствуйте, ботаныч, Вы писали:

BFE>>E.entities и E::entities — это доступ к разным значениям.

Б> Это ирония ?? Ничего делать, в компайл-коснт классе появится какой-то там "."? еще и разный с class::foo ..
Б>просто переписать компилятор, и всего-то, написать другой фактически. А зачем ? если уже есть ::

Никакая это не ирония. Два двоеточия ("::") — это переход по имени, а '.' — это доступ к свойству (к проперти, говоря на сленге). Как их можно перепутать я представляю с трудом. "компайл-коснт" тут вообще ни причём. Нет никакой проблемы в том, чтобы операция доступа к свойствам объекта встречалась в любом контексте. Вас же не смущает, что в коде можно написать sizeof(int) ? Я не вижу причин, почему всякий sizeof(int) нельзя заменить на выражение int.size.
Сейчас, за именем типа не может следовать одна точка (только троеточие), а за именем объекта не может следовать два двоеточия (только одно). Если не согласны — приводите пример.
Поэтому нет никаких проблем с тем, чтобы задействовать точку после имени.
Компилятор переписывать не надо, так как добавление точки — это расширение, а не изменение.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.