Re[3]: Следим за D
От: naryl  
Дата: 05.12.09 17:18
Оценка:
Здравствуйте, FR, Вы писали:


FR>>В общем с мая никаких глобальных или ломающих изменений не видно, пора уже хотя бы в бету перейти.


FR>Похоже я поторопился в новой версии http://www.digitalmars.com/d/2.0/changelog.html#new2_037 появились новые фичи.


FR>Самое интересное по моему http://www.digitalmars.com/d/2.0/operatoroverloading.html#Dispatch. Дает возможность диспетчеризации вызовов, если какой то метод не определен в структуре или классе, но при этом определен шаблонный метод opDispatch с соответствующей сигнатурой, то он и вызывается. Раньше была перегрузка оператора точки opDot (во многом аналог operator-> из C++) сейчас из документации это исчезло, opDispatch в общем полностью перекрывает его функциональность.


opDot перекрылся уже alias this (перенаправление вызовов неопределённых методов другому объекту. Иными словами, наследование методом делегирования, как в snit). opDispatch — новая фича.

opDispatch — шаблонный метод. Если он объявлен в классе или структуре, то, при вызове отсутствующего в классе метода, имя функции и все аргументы (в соответствии с сигнатурой. Либо tuple'ом, либо фиксированными аргументами) будут переданы в opDispatch. Незаменимая штука в некоторых случаях. Например, с помощью этой штуки можно реализовать класс, который будет все вызываемые у него методы... преобразовывать в удалённые Xml-Rpc вызовы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.