Почему ключевое слово restrict не является частью C ++?

Название говорит само за себя. Мне любопытно, почему ключевое слово restrict не является частью C ++? Я не знаю много о C ++, и я до сих пор не могу найти в Интернете ничего, что могло бы послужить причиной, блокирующей это. Кто-нибудь знает, какие ужасные вещи произойдут, если стандарт C ++ будет использовать это ключевое слово так же, как это делает C? Это просто не нужно вообще?

Более подробное объяснение. Речь идет не о его использовании, возможно, я не получу никакой пользы от этого ключевого слова за всю свою жизнь. Этот вопрос только о любопытстве, так как ограничение является частью C с C99, то есть 15 лет.

Прочитайте это также:
Меня интересуют технические причины, а не мнения типа «Им просто не понравилось, это не достаточно круто»

26

Решение

Существует несколько проблем в определении «ограничения» в C ++, некоторые из них перечислены в документе WG N3635: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3635.pdf «На пути к семантике ограниченного использования для C ++»

Некоторые возможные проблемы с ограничением в C ++:

  • Ограничить членов класса и косвенность с помощью «этого указателя»
  • Передача ограничительных квалификаторов в функции, функторы, лямбды и шаблоны
  • Экранирование ограниченных значений указателя внутри функций
  • Перекрывающиеся члены массива, шаги

Документ также перечисляет несколько компиляторов C ++ с ограниченной «ограниченной» поддержкой C ++.

В N3635 также есть интересная историческая заметка о невключении restrict в C ++:

Во время рассмотрения включения функции C99 в C ++ во время собрания в Монт-Трембланте рассматривалось ограничение, но ожидалось бумажное предложение, хотя никто не выступил …

Restrict — это функция C99, никогда не предназначавшаяся для работы с абстракциями классов, и может иметь отношение к тому, что указатели не распространены в C ++. … он был разработан для мелкозернистого псевдонима для C, но не был хорошо разработан для псевдонимов на основе типов в C ++

14

Другие решения

Не отвлекаем от ответа osgx, но есть несколько более современная статья N3998 Финкеля, Тонга, Каррута, Нельсона Вандевуда и Вонга от мая 2014 года:

На пути к семантике сглаживающих ограничений для C ++

Это все еще довольно далеко назад, хотя.

3

По вопросам рекламы [email protected]