Even though C++ popularized the concept of smart pointers, especially the reference-counted variety, the immediate predecessor of one of the languages that inspired C++'s design had reference-counted references built into the language. C++ was inspired in part by Simula67. Simula67's ancestor was Simula I. Insofar as Simula I's "element" is analogous to C++'s pointer without "null", and insofar as Simula I's process with a dummy-statement as its activity body is analogous to C++'s "struct" (which itself is analogous to C.A.R. Hoare's "record" in then-contemporary 1960s work), Simula I had reference counted elements (i.e., pointer-expressions that house indirection) to processes (i.e., records) no later than September 1965, as shown in the quoted paragraphs below.