Il est dit que les premières implémentations C ++ ont eu un opérateur point pour l'accès à l'espace de noms. Il y a une opinion que le point est plus pratique que l'opérateur moderne à deux points.
Quel était le raisonnement derrière l'introduction du double colon?
c++
language-design
history
Riches
la source
la source
::symbol
de le forcer à recherchersymbol
dans l'espace de noms global au lieu de l'espace de noms actuel, c'est donc au moins une chose qui semblerait très déroutante et introduirait probablement une ambiguïté encore plus syntaxique dans le langage si le l'opérateur point a été utilisé à la place.Réponses:
Comme l'a observé Jules, c'est un fait que les premières implémentations C ++ (CFront pré-1.0) avaient un point pour l'identification de la portée.
Un point a également été utilisé en C avec Classes (1980). En effet, il s'agit d'un simple extrait de Classes: An Abstract Data Type Facility for the C Language 1 :
(le code était un exemple de la façon dont les fonctions membres étaient généralement définies "ailleurs")
Le
::
était l' un des ajouts à C avec des classes introduites pour produire C ++.La raison est donnée par Stroustrup lui-même:
( Une histoire de C ++: 1979−1991 [2] page 21 - § 3.3.1)
Bjarne Stroustrup: "Classes: An Abstract Data Type Facility for the C Language" - Rapport technique informatique CSTR − 84 des laboratoires Bell. Avril 1980.
Bjarne Stroustrup: "A History of C ++: 1979−1991" - AT&T Bell Laboratories Murray Hill, New Jersey 07974.
la source