Learn more about C++Builder at http://www.embarcadero.com/products/cbuilder. John Thomas of Embarcadero Technologies presents C++ and its renewed usage in the high-growth mobile application development market with emphasis on the iOS and Android platforms. The presentation covers the brief history of C/C++, its renewed importance in modern application development with current frameworks, new C++11 language features, and vendor language extensions.
1. Do you C what I C?
{ The resurgence of C/C++ for modern application
development
Silicon Valley CodeCamp
October 2012
John Thomas, Embarcadero Technologies
2. Dogs and Cats living
together…Mass Hysteria!!
-Dr. Venkman (Ghostbuster)
3. Dogs (like C++) require some effort,
but it pays off in more utility, later.
6. C with Objects (1979)
Modeled OO after
Simula and Ada
But syntax and RTL
based on C
Classes
Inheritance
Inlining
Default arguments
Type checking
CFront compiler
Bjarne Stroustrup
7. Name changed to C++ in 1983
Virtual functions
Operator overloading
References
Constants
// Single line comments
AT&T commercial compiler
AT&T C++
12. C++03 was a bug fix Regular expressions
release for
Smart pointers
implementers
Hash tables
No change to the
specification Random number
generators
TR1 was library
focused Reference wrapper
Much of the standard Function objects
library began its life in Tuple type
Boost
Fixed size array
C++03 & TR1
13. Rvalue references and move Variadic templates
constructors New string literals
constexpr - Generalized constant User-defined literals
expressions
Multithreading memory model
Core language usability
enhancements Thread-local storage
Initializer lists Explicitly defaulted and deleted
special member functions
Uniform initialization
Type long long int
Type inference
Static assertions
Range-based for-loop
Allow sizeof to work on members of
Lambda functions and expressions classes without an explicit object
Alternative function syntax Control and query object alignment
Object construction improvement Allow garbage collected
Explicit overrides and final implementations
Null pointer constant Threading facilities
Strongly typed enumerations Tuple types
Right angle bracket Hash tables
Explicit conversion operators Regular expressions
Alias templates General-purpose smart pointers
Unrestricted unions Extensible random number facility
Wrapper reference
Polymorphic wrappers for function
C++11
objects
Type traits for metaprogramming
21. 1990s 2005
Large growth in Device development
desktop applications kick-started again by
Client-server IP Apple success with
architecture nascent iPod, iPhone, and iPad
Most server side apps 2010
were basic web Tremendous device
2000 client growth through
smartphones driven by
Server side Android
development increase
Server side still
Java growth with EJB important but
leveraged
Client / Server