Что такое понятия?


Я слышал все это новое (on /.) о том, что у C++0x больше нет понятий, но я понятия не имею, что это такое? Кто-нибудь может мне объяснить?

2 22

2 ответа:

Понятия

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

Например, некоторые типы коллекций нуждаются в параметре type для определения оператора<.> Это некоторое упрощение, но я думаю, что оно дает вам общее представление о концепциях.

Если вы хотите попробуйте некоторые из возможностей концептов, взгляните на Boost.Концепция проверка библиотеки. Я не думаю, что он предоставляет полный спектр возможностей, которые должны были быть в стандарте, но это хорошее место для начала.

Вы также можете посмотреть на ConceptC++, там есть хорошее определение понятий.

Вот статья, которая, я думаю, поможет:

Http://www.devx.com/SpecialReports/Article/38864

Решение об их удалении также неоднократно обсуждалось здесь на SO. Они могут оказаться интересными:

C0x больше не имеет понятий

Понятия по сравнению с интерфейсами

Гипотетическое обсуждение понятий