2013-06-07 1 views
1

Как говорится в названии, есть что-то под названием Concepts Lite (Template Constraints) и Concept Design for the STL. Может ли кто-нибудь объяснить некоторые фундаментальные различия между ними?В чем разница между концепциями C++ и ограничениями на шаблоны C++?

+0

Один из них, если вы планируете использовать его каждый день? –

ответ

1

Первый вводит изменения на языке C++ (ядро), чтобы иметь возможности для выражения ограничений на шаблоны. Обеспечение разумных проверок, сообщений об ошибках пользователям и простых инструментах для авторов шаблонов.

Он будет разработан как Техническая спецификация (TS) и ожидается к середине 2014 года примерно в то же время C++ 14. Писатели-компиляторы, похоже, с энтузиазмом отправляют его в ближайшее время.

Вторая информация о библиотеке: текущие стандартные ограничения использования lib cna't, которые по понятным причинам не являются частью стандарта. Но как только эта часть бозе, шаблоны могут и будут улучшаться с большей наглядностью требований. В настоящее время в тексте только написано, что аргумент шаблона должен быть по умолчанию конструктивным или назначаемым. Поэтому, если вы используете C++ 03 и std::vector<std::auto_ptr<int> >, это просто UB. Но с концептуальной версией такие проблемы будут диагностированы при компиляции.

Смежные вопросы