Se rumorea que las primeras implementaciones de C ++ han tenido un operador de puntos para el acceso al espacio de nombres. Existe la opinión de que el punto es más conveniente que el operador moderno de dos puntos.
¿Cuál fue el razonamiento detrás de la introducción del doble colon?
c++
language-design
history
Rico
fuente
fuente
::symbol
forzarlo a buscarsymbol
en el espacio de nombres global en lugar del espacio de nombres actual, por lo que eso es al menos una cosa que parecería muy confusa y probablemente introduciría aún más ambigüedad sintáctica en el lenguaje si el Se utilizó el operador de punto en su lugar.Respuestas:
Como observó Jules , es un hecho que las primeras implementaciones de C ++ (CFront pre-1.0) tenían un punto para la identificación del alcance.
También se usó un punto en C con las clases (1980). De hecho, este es un fragmento simple de las clases: un recurso de tipo de datos abstractos para el lenguaje C 1 :
(el código era un ejemplo de cómo las funciones miembro se definían típicamente "en otro lugar")
El
::
era una de las adiciones a C con las clases introducidas a los productos C ++.La razón la da el propio Stroustrup:
( Una historia de C ++: 1979-1991 [2] página 21 - § 3.3.1)
Bjarne Stroustrup: "Clases: una instalación de tipo de datos abstractos para el lenguaje C" - Informe técnico de informática de Bell Laboratories CSTR − 84. Abril de 1980.
Bjarne Stroustrup: "Una historia de C ++: 1979-1991" - AT&T Bell Laboratories Murray Hill, Nueva Jersey 07974.
fuente