Há rumores de que as implementações iniciais do C ++ tiveram um operador de ponto para acesso ao namespace. Há uma opinião de que o ponto é mais conveniente que o operador moderno de dois pontos.
Qual foi o motivo por trás da introdução do cólon duplo?
c++
language-design
history
Rico
fonte
fonte
::symbol
forçá-lo a procurarsymbol
no espaço para nome global em vez do espaço para nome atual; portanto, isso é pelo menos uma coisa que pareceria muito confusa e provavelmente introduziria ainda mais ambiguidade sintática na linguagem se o operador de ponto foi usado.Respostas:
Como observado por Jules , é fato que as implementações iniciais de C ++ (CFront pré-1.0) tinham um ponto para identificação do escopo.
Um ponto também foi usado em C com Classes (1980). De fato, este é um trecho simples de Classes: um recurso abstrato de tipo de dados para a linguagem C 1 :
(o código era um exemplo de como as funções de membro eram normalmente definidas "em outro lugar")
Essa
::
foi uma das adições ao C com Classes introduzidas para produzir C ++.A razão é dada pelo próprio Stroustrup:
( A History of C ++: 1979-1991 [2] página 21 - § 3.3.1)
Bjarne Stroustrup: "Classes: um recurso abstrato de tipo de dados para a linguagem C" - Relatório Técnico da Ciência da Computação da Bell Laboratories CSTR-84. Abril de 1980.
Bjarne Stroustrup: "A History of C ++: 1979-1991" - Laboratórios AT&T Bell Murray Hill, Nova Jersey 07974.
fonte