Будет ли С++ 14 поддерживать неограниченные общие функции?

При просмотре изменений GCC 4.9.0 здесь, я был приятно удивлен, прочитав следующее: в разделе "Новые улучшения для языков и языков" для С++:

g++ поддерживает неограниченные общие функции, указанные в п. 4.1.1.2 и §5.1.1 N3889: Основные понятия Lite Specification. Вкратце, авто может использоваться как спецификатор типа в объявлении параметра любого функции декларатора, чтобы ввести неявную функцию шаблонный параметр, аналогичный общему числу лямбда.

// the following two function declarations are equivalent
auto incr(auto x) { return x++; }
template <typename T>
auto incr(T x) { return x++; }

Я построил GCC 4.9.0, и мои первоначальные тесты работали, как ожидалось. Я считаю, что Concepts Lite останутся как-то вспомогательными к предстоящей спецификации С++ 14. Есть ли какой-либо план "неограниченных общих функций", чтобы стать частью С++?

Ответы

Ответ 1

Если мы посмотрим на последний черновик стандарта N3936, который довольно близок к С++ 14 DIS, который является N3937 (это N3938). Он не содержит языка, указанного в разделах 4.1.2 и 5.1.1 of N3889.

Итак, для С++ 14 похоже, что ответ отрицательный, но Бьярне Страуструп говорит, что концепт lite будет техническим докладом. Дополнительную информацию о технических отчетах можно найти на странице текущей страницы состояния cpp ISO, в которой говорится:

Помимо С++ 14, комитет планирует создать еще один С++ Стандарт примерно в 2017 году. Это не значит, что ничего не происходит Тем временем, однако, поскольку в настоящее время у нас есть восемь (8) отдельных Выполняются технические спецификации, некоторые из которых опубликованной в 2014 и 2015 годах. Начиная с 2012 года, комитет переход к "развязанной" модели, где основные работы могут независимо от самого Стандарта и отдельные TS. Поставщики могут выбрать их реализовать, а сообщество может получить опыт работы с экспериментальной версией std:: каждый особенность. Это позволяет нам изучать и корректировать дизайн каждой функции основанный на опыте, прежде чем он будет официально включен в будущую версию фактического стандарта С++