page_title: Bjarne Stroustrup
section_title: C++
hierarchical_section_title: Bjarne Stroustrup / C++
caption_attribution_description: English: The ISO/IEC JTC1/SC22/WG21 C++ Standards Committee meeting in a Wednesday general session at the Dream Inn in Santa Cruz, California in March 1996. C++ inventor Bjarne Stroustrup is seen standing on the left.
context_page_description: Bjarne Stroustrup is a Danish computer scientist, most notable for the creation and development of the C++ programming language. He is a visiting professor at Columbia University, and works at Morgan Stanley as a Managing Director in New York.
context_section_description: Stroustrup is best known for his work on C++. In 1979, he began developing C++ (initially called "C with Classes"). In his own words, he "invented C++, wrote its early definitions, and produced its first implementation [...] chose and formulated the design criteria for C++, designed all its major facilities, and was responsible for the processing of extension proposals in the C++ standards committee." C++ was made generally available in 1985. For non-commercial use, the source code of the compiler and the foundation libraries was the cost of shipping (US$75); this was before everyone had Internet access. Stroustrup also published a textbook for the language in 1985, The C++ Programming Language.
  The key language-technical areas of contribution of C++ are:
  A static type system with equal support for built-in types and user-defined types (that requires control of the construction, destruction, copying, and movement of objects; and operator overloading).
  Value and reference semantics.
  Systematic and general resource management (RAII): constructors, destructor, and exceptions relying on them.
  Support for efficient object-oriented programming: based on the Simula model with statically checked interfaces, multiple inheritance, and efficient implementation based on virtual function tables.
  Support for flexible and efficient generic programming: templates with specialization and concepts.
  Support for compile-time programming: template metaprogramming and compile-time evaluated functions ("constexpr functions").
  Direct use of machine and operating system resources .
  Concurrency support through libraries (where necessary, implemented using intrinsics).
  Stroustrup documented his principles guiding the design of C++ and the evolution of the language in his 1994 book ”The Design and Evolution of C++” and two papers for ACM's History of Programming Languages conferences.
  Stroustrup was a founding member of the C++ standards committee (from 1989, it was an ANSI committee and from 1991 an ISO committee) and has remained an active member ever since. For 24 years he chaired the subgroup chartered to handle proposals for language extensions (Evolution Working Group).
caption: Stroustrup (standing on left) at the March 1996 Santa Cruz meeting of the C++ Standards Committee
exif: {"Image Orientation": "Horizontal (normal)", "Image XResolution": "200", "Image YResolution": "200", "Image ResolutionUnit": "Pixels/Inch", "Image Software": "Adobe Photoshop Elements 5.0 Windows", "Image DateTime": "2019:12:27 20:46:27", "Image ExifOffset": "172", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail XResolution": "72", "Thumbnail YResolution": "72", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "310", "Thumbnail JPEGInterchangeFormatLength": "5445", "EXIF ColorSpace": "sRGB", "EXIF ExifImageWidth": "1017", "EXIF ExifImageLength": "789"}