Что такое С++ Technical Specification?

Концепция-Lite С++ (предложение N3701) не включена в стандарт С++ 1y, но считается, что она будет опубликована как Техническая спецификация. Что это значит? Будет ли он автоматически становиться стандартной функцией в следующих выпусках С++?

Ответ 1

Мне обычно не нравится ответ "копировать-вставить", но я думаю, что это довольно хорошо объяснено здесь:

Начиная с 2012 года, комитет перешел на "развязанный" модель, в которой основные части работы прорабатываются независимо от Стандарт сам по себе и может быть поставлен асинхронно в форме Технические характеристики (TS), которые отделены от основного Стандарт и позднее может быть включен в стандарт. С релизы, нацеленные на 2014 год, мы уделяем особое внимание, в частности, создание новых стандартных библиотек С++; для участия, см. Предложения и инструкции о том, как отправить предложение.

Эта развязанная модель позволяет комитету поставлять меньшие куски работать быстрее и предсказуемо. Развязка позволяет ряд способов, в том числе, что каждая работа TSs может прогрессировать в собственном скорость, может быть доставлена ​​раньше, не дожидаясь следующего Стандарта, и могут быть доставлены в форме, которая позволяет сообществу получить опыт с функцией и, возможно, отрегулировать ее дизайн, прежде чем он будет формально включены в настоящий Стандарт. Развязка работы также позволяет Стандарт должен быть поставлен на более регулярную каденцию с меньшим и более предсказуемые "партии" функций, которые помогают компиляторам более внимательно отслеживать Стандарт и поощряет различные компиляторы к добавьте новые функции в более последовательный порядок.

Что это означает для пользователей:

Вы сможете использовать любую из этих новых функций из отдельного пространства имен, которое, я считаю, будет std::experimental::fundamentals_v1 *. Как только эти функции будут "полностью испечены", они будут включены в стандарт С++ и перенесены в пространство имен std.

*: Хотя похоже, что fundamentals_v1 будет встроенным пространством имен, поэтому вы можете просто добавить std::experimental.