среда, ноября 12, 2008

Видео Concepts: Extending C++ Templates For Generic Programming

Рассказ про новую фичу, которая будет в C++0x - концепции.


По ссылке с Deepen C++.

Updated 15.11.2008:
Поскольку далеко не все захотели смотреть видео на час, хорошо бы привести описание концепций. Свое мне писать лень, в комментариях Cheremukhin привел ссылку на хорошее описание.
Короче говоря, это требования к обобщаемому типу, невыполнение которых может привести к ошибке инстанцирования шаблона. На данный момент такие требования повсеместно встречаются в документации(IS, boost docs, etc). Теперь эти требования можно будет выражать в коде.
Там чуть вниз надо отмотать до раздела Concepts.

8 комментариев:

  1. Было бы куда полезней, если бы вы описали парой абзацев суть видео, видео на час - это серьезно.

    ОтветитьУдалить
  2. Анонимный13/11/08 10:04

    +1

    Очень не хочу смотреть все видео, чтобы понять, правильно ли я думаю, что это Java'вские (и Делфийские) интерфейсы, и чем оно от них отличается.

    ОтветитьУдалить
  3. Java-интерфейсы это тупо классы, состоящие полностью из pure virtual функций. Концепция - это описание требований к типу, от нее не наследуются.

    ОтветитьУдалить
  4. Вот
    http://forum.sources.ru/index.php?showtopic=190375
    Раздел concept

    ОтветитьУдалить
  5. Анонимный18/11/08 16:04

    для полноты картины
    http://en.wikipedia.org/wiki/C++0x#Concepts

    ОтветитьУдалить
  6. Пара ссылок от Dragon

    Для тех кто не хочет случашать, а быстро просмотреть. Вот она в PDF'е
    http://www.generic-programming.org/languages/conceptcpp/papers/accu07.pdf
    а вот в PPT
    http://www.generic-programming.org/languages/conceptcpp/papers/accu07.ppt

    ОтветитьУдалить
  7. Я что-то не просек. Если у нас тип не отвечает каким-то требованиям (в примерах из видео я видел примитивные примеры типа сравнимости ), то у нас все равно не инстанцируются шаблоны.

    ОтветитьУдалить
  8. Анонимный4/9/09 17:49

    Шаблоны не инстанцируются, но проблема в том, что сообщение об ошибке при этом абсолютно невменяемое, и может занимать несколько экранов, и в чём конкретно ошибка - из этой ереси непонятно. А при использовании концептов сообщение об ошибке предельно простое и понятное.

    ОтветитьУдалить