Frequently Asked Questions on hepnet.lang.c++

Last revised February 4, 1994.

This FAQ provides information on the HEPnet group hepnet.lang.c++ for discussion and questions on applications of the C++ programming language in High Energy Physics.

The FAQ is posted monthly to the group. The latest version is stored in FreeHEP's repository at freehep.scri.fsu.edu in directory freehep/C++/reviews in files hepC++FAQ.* [formats: plain text, PostScript, HTML].

Contents:

  • (1) What shall be discussed in this group?
  • (2) What shall not be discussed in this group?
  • (3) Where can I get more information on C++?
  • (4) Where are previous postings to this group?
  • (5) Is there any standard for C++ coding in HEP?
  • (6) What is GNU g++?
  • (7) Which HEP projects use C++?
  • (8) Can you recommend a book on C++?
  • (9) Is there a beautifying tool for C++ code?
  • (10) Anything else I need to know before posting?

  • (1) What shall be discussed in this group?
    This is a discussion group for people programming for HEP applications in C++. Announcements on software, conferences or other developments shall be (cross-)posted here. More experienced programmers will help C++ beginners to solve their initial problems with compilers, porting, syntax...etc. - no question is too small, and some people like to discuss with physicists rather than computer scientists on comp.lang.c++. Also, discussions on the "inofficial" standard/rules for C++ HEP applications [see (5)] take place here.

    Recently, opportunities to meet for a topical meeting during an international conference or workshop (such as CHEP '94) were discussed, too.

    (2) What shall not be discussed in this group?
    Anything which is really limited to the local programming environment, such as "What is the command to compile my C++ program on the SGI cluster at DESY?", as well as local announcements, software updates etc. should go to the existing local discussion groups which exist at all big HEP labs. If you strongly feel you're touching a C++ standard discussion question, post to comp.std.c++ instead. Don't spill too much hacker jargon on this group - C++ is still in its infancy in HEP.

    (3) Where can I get more information on C++?
    Attach to the World Wide Web (WWW) at http://info.desy.de/user/projects/C++.html or, if you have no clue about WWW, get /pub/c++/Announce/C++.txt via anonymous FTP from ftp.desy.de [131.169.10.115] Many FAQs are answered on the WWW pages. Especially if you miss information because you are reading the text version of this FAQ, you might want to check out the WWW resource.

    (4) Where are previous postings to this group?
    All previous postings are stored at FreeHEP in news/hepnet/lang/c++ , ordered by numbers. For your convenience, a selection of archived postings is available on WWW.

    (5) Is there any standard for C++ coding in HEP?
    The use of "Rules and Recommendations " (PostScript, also in ftp.desy.de:/pub/c++/misc/c++.rules.ps ) was once proposed, partially adopted, but also heavily criticized after. People using GNU Emacs might like its C++ mode. For CLHEP, the GNU g++ compiler is standard.

    (6) What is GNU g++?
    gcc/g++ is a free, true C++ compiler (no front-end only translating into C) from GNU, running on many systems. In HEP, some projects, like the CLHEP library, guarantee that their code compiles with g++. All you need to know is contained in the g++ FAQ. Its latest version can be obtained from rtfm.mit.edu:/pub/usenet/news.answers. More on CLHEP is in freehep.scri.fsu.edu:/freehep/C++/CLHEP/CLHEP.dbase

    (7) Which HEP projects use C++?
    Various. A list of projects in this decade was compiled by D. Myers/CERN. It is stored in freehep.scri.fsu.edu:/news/hepnet/lang/c++/109.

    An interesting proposal to reorganize CLHEP was made recently (see freehep.scri.fsu.edu:/news/hepnet/lang/c++/171

    (8) Can you recommend a book on C++?
    See (3) esp. the 'Getting Start(l)ed' page for more books and reviews. A selection:
  • B. Stroustrup: The C++ Programm Language (Addison-Wesley, 1992) 2nd ed. [tutorial, requires (non-OO) programming experience]
  • M. Ellis and B. Stroustrup: Annotated C++ Reference Manual [ARM] (Addison-Wesley, 1990) [heavy, not for beginners, all the intimate details]
  • S. Lippman: A C++ Primer (Addison-Wesley, 1992) 2nd ed. [readable, much used introductory text]
  • I. Pohl: Object-Oriented Programming Using C++ (Benjamin-Cummings, 1993) [very readable, no prerequisites, and brand new]
  • It may be a good idea to have at least one of these in your local library.

    If you want it cheaper, I recommend the freely available C++ FAQ [from rtfm.mit.edu:/pub/usenet/news.answers], or the C++ Tutorial from Coronado Enterprises. The sample programs for C++ Primer and the C++ Tutorial are available via WWW and ftp [from ftp.desy.de] Errata for the books by Stroustrup and Lippman are available from the Darmstadt C++ Archive

    GNA [Globewide Network Academy] will offer an Introductory Course on C++ in 1994.

    Material from "High Tea C++ Lectures" held by Irwin Sheer (SSC) are downloaded at freeHEP as /freehep/C++/reviews/SSC-course.tar.Z

    (9) Is there a beautifying tool for C++ code?
    For GNU Emacs, Lemacs and Epoch, there is C++ mode, a customizable Emacs-Lisp program which allows you and your colleagues to code in an homogenous style. The latest version can be obtained from archive.cis.ohio-state.edu in directory /pub/gnu/emacs/elisp-archive/modes

    (10) Anything else I need to know before posting?
    You may want to check who's actively using C++ at your site. Check the local C++ groups. A hell of a lot of information is available through the STING service from CERN. C++ software relevant for High Energy Physics is collected at FreeHEP 's C++ repository .

    Maybe you are not altogether decided to use C++ ? Then have a look at some info on the Eiffel language from the Atlas collaboration.


    Disclaimer: "This FAQ is presented with no warranties or guarantees of ANY KIND including correctness or fitness for any particular purpose. The author of this document has attempted to verify correctness of the data contained herein; however, slip-ups can and do happen. If you use this data, you do so at your own risk."

    Copyright (C) 1993, 1994 Marcus Speh, <marcus@x4u.desy.de>. All rights reserved. Permission is granted to copy this document for free distribution so long as it remains intact and unmodified.