- 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
Free lunch
- Processors are getting faster and faster
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