Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!rutgers!att!dptg!ulysses!andante!alice!bs From: bs@alice.UUCP (Bjarne Stroustrup) Newsgroups: comp.lang.c++ Subject: Re: the secret bang Summary: not a feature but a ... Message-ID: <10026@alice.UUCP> Date: 17 Oct 89 01:21:53 GMT References: <1167@osc.COM> Organization: AT&T Bell Laboratories, Murray Hill NJ Lines: 41 osc.com (henry strickland 415-325-2300) of the techwood toaster pastry users group, georgia tech, Object-Sciences Corp (God's own startup) writes: // Curious to AT&T cfront2.0 is the undocumented postfix-bang operator. // It can only be used in type declarations, to mean the same thing as // the prefix-star operator or the postfix-empty-brackets operator. Yuck. I thought we finally had gotten it out! // Any conjectures why the secret bang is there? Wasn't postfix "!" a // dereference operator in BCPL? Infix ! is the BCPL subscripting operator. What you saw was a supposedly removed fragment of an experiment to provide a representation for C and C++ that could be written using the ISO 646 character set standard without the use of national characters as operators. FYI, ASCII is the US national version of ISO646 (assuming I got the number right) and it has the curious feature that the 6 character codes designated for alphabetic characters have been used as operators. Most European languages have more letters in the alphabet than English and use those character codes for those ``extra'' letters. In particular, if I wants to write in my native language (Danish) I cannot also use the symbols []{}\| when using a device with a ISO646 character set. Someone from the Danish ISO committee and the Danish Unix Users' Group me to find a representation that allowd them to write C++ in Danish and other European languages. We havene't had much luck with the proposal (you can find it in one of the EUUG newsletters from this year), but ! was the subscript operator, the replacement for []. // P.S. Let's no one argue about its merit as a feature of C++. It's // not, and will never be, and should never be. It's just curious! Agreed.