среда, 22 июля 2009 г.

Новости из Франкфурта

Пришли новости из Франкфурта – Concept’ы убрали из черновика стандарта, при том, что идея Concept’ов была, так сказать, блокбастером этого стандарта. Зато должны теперь успеть в срок со стандартом.

Зато мелких изменений очень много; и судя по тому как легко эти изменения будет использовать, – влияние на C++ они окажут как бы не большее чем Concept’ы.

Официально о Concept’ах – “этой особенности языка надо ещё выстоятся”… Похоже не совсем знают, как адаптировать к другим “плюшкам” в срок. Это было видно ещё раньше – стандартная библиотека в версии на сентябрь не включала в себя шаблоны с применёнными к ним Concept’ами.

В большинстве применений Concept’ы позволяют просто получать более читаемые ошибки для template’ов на соответствие некоторому интерфейсу, но насколько же с ними было бы удобно это делать:

Для меня введение Concept’ов (в виде automatic "concepts", на котором настаивал
Страуструп) позволяло перейти к питонообразному подходу при работе с шаблонными
функциями и классами. – Получать такие же значащие сообщения об ошибках можно и
другим способом – хоть через попытки приведения к некоторому интерфейсу или
родительскому классу. Но всё таки отношения вида “работая с этим шаблоном вы
обязуетесь, что ваш объект соответствует некоторому интерфейсу и
обладает некоторыми свойствами”, удобней чем “работая с этим шаблоном вы
обязуетесь, что ваш объект реализует некоторый интерфейс”. Т.к. в 1-м
случае набор функций в интерфейсе можно получить от различных источников
наследования, а во втором случае надо наследоваться от обязательного интерфейса,
что порождает ненужную связь в архитектуре, да и усложняет работу вцелом.

Так что, ждём этого стандарта и готовимся к следующему, в котором Concept’ы уже надеюсь будут.

Ссылки по теме:

Саттер: http://herbsutter.wordpress.com/2009/07/21/trip-report/

Страуструп: http://www.ddj.com/architect/218600111?pgno=1

Комментариев нет:

Отправить комментарий