name keywords importantes google etiquetas ejemplos description c++ restrict restrict-qualifier

c++ - keywords - meta tags importantes



¿Por qué la palabra clave de restricción no es parte de C++? (2)

Hay varios problemas al definir "restringir" en C ++, algunos de ellos se enumeran en el documento WG N3635: open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3635.pdf " Hacia la semántica restrict-like para C ++ "

Algunos problemas posibles con restringir en C ++ son:

  • Restringir miembros de clase e indirección con "este puntero"
  • Paso de restringir calificadores a funciones, funtores, lambdas y plantillas
  • Escape de valores de puntero restringido dentro de funciones
  • Superposición de miembros de la matriz, avances

El documento también enumera varios compiladores de C ++ con soporte limitado de "restringir" para C ++.

También hay una nota histórica interesante en N3635 sobre la no inclusión de restringir a C ++:

En el momento de revisar la inclusión de C99 en C ++ durante la reunión de Mont Tremblant, se consideró restringir pero estaba esperando una propuesta en papel, aunque no se presentó ninguna ...

Restrict es una característica de C99 y nunca fue diseñado para funcionar en abstracciones de clase y puede tener que ver con que los punteros no son comunes en C ++. ... fue diseñado para el aliasing de grano fino para C, pero no está bien diseñado para el aliasing basado en tipos en C ++

El título lo dice todo. Tengo curiosidad ¿por qué la palabra clave de restricción no es parte de C ++? No sé mucho acerca de C ++, y aún no puedo encontrar nada en línea que pueda dar una razón para bloquear esto. ¿Alguien sabe qué cosas terribles ocurrirían si un estándar de C ++ usara esta palabra clave de manera similar a como lo hace C? ¿No es necesario en absoluto?

Más explicación: no se trata de usarlo, quizás no obtendré ningún beneficio de esta palabra clave en toda mi vida. Esta pregunta es solo por curiosidad, ya que restringir es parte de C desde C99, es decir, 15 años.

Lea esto también: estoy interesado en razones técnicas, no en opiniones como "simplemente no les gustó, no es lo suficientemente bueno"