Название говорит само за себя. Мне любопытно, почему ключевое слово restrict не является частью C ++? Я не знаю много о C ++, и я до сих пор не могу найти в Интернете ничего, что могло бы послужить причиной, блокирующей это. Кто-нибудь знает, какие ужасные вещи произойдут, если стандарт C ++ будет использовать это ключевое слово так же, как это делает C? Это просто не нужно вообще?
Более подробное объяснение. Речь идет не о его использовании, возможно, я не получу никакой пользы от этого ключевого слова за всю свою жизнь. Этот вопрос только о любопытстве, так как ограничение является частью C с C99, то есть 15 лет.
Прочитайте это также:
Меня интересуют технические причины, а не мнения типа «Им просто не понравилось, это не достаточно круто»
Существует несколько проблем в определении «ограничения» в 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 ++
Не отвлекаем от ответа osgx, но есть несколько более современная статья N3998 Финкеля, Тонга, Каррута, Нельсона Вандевуда и Вонга от мая 2014 года:
На пути к семантике сглаживающих ограничений для C ++
Это все еще довольно далеко назад, хотя.