Overview of C++

  • C++ is multiparadigm, systems programming language.
  • The main purpose is to be a high-level language, without
  • sacrificing any performance
  • This means that in C++ you don't pay for features that you don't
  • use.

Multiparadigm

  • Structured
  • Object Oriented
  • Functional
  • Data Oriented

And multithreaded

And compile-time

C++ renaissance?

Free lunch

  • Processors are getting faster and faster

The Free lunch is over

An article by Herb Sutter in 2005

Sequential execution is reaching the physical limits.

Viva la multicore revolution

  • Processors have multiple cores
  • Every single core executes multiple instructions simultaniously

Here comes the electricity bill

Processors are hitting new barriers

  • power consumption
  • heat generation

Mobile

  • Processors are slower
  • Power is pretty limited
  • Users are in a hurry

Portability

C and C++ are one of the most portable languages

  • there are compilers for every platform
  • the 3 most popular compilers cover all desktop platforms, iOS, Android, PlayStation 4, XBox

Brief history of C++

1979 - Bjarne Stroustrup started developing "C with Classes" in Bell Labs

1983 - C++ is born. cfront works by translating C++ to C and compiling

C++ revisions

  • C++ '98
  • C++ '03
  • C++ '11
  • C++ '14
  • C++ '17

What was new in C++ 03 TR1

  • shared_ptr
  • regex
  • random
  • quite a lot of math functions
  • ...

What is new in C++ 11

  • Multi-thread machine model
  • lambda functions
  • C++ 03 TR1 is part of the language

What probably will be new in C++ 14

  • boost::filesystem
  • cpp_netlib - HTTP client and server
    • sockets - TCP, UDP
    • asyncronous IO
    • HTTP

What might be new in C++ 17

  • Visual Studio are pushing async keyword

What is new in the C++ community

  • compilers are developing faster
  • 2 already implement the C++ 11 language
  • companies are supporting C++
  • Going Native, C++Next

Compilers

  • Microsoft Visual Studio
  • GCC
  • clang

Resources