Difference between revisions of "C++11 in Hall D Online"

From GlueXWiki
Jump to: navigation, search
m
m
Line 11: Line 11:
  
  
'''Safety'''
+
==Safety==
  
override
+
'''override'''
nullptr
+
static assert and type traits
+
smart pointers
+
move semantics
+
thread library
+
  
 +
'''nullptr'''
  
'''Convenience'''
+
'''static assert and type traits'''
  
auto
+
'''smart pointers'''
range-for
+
 
initializer lists
+
'''move semantics'''
constructor chaining
+
 
lambdas
+
 
tuples
+
 
new algorithms
+
==Convenience==
regular expressions
+
 
 +
'''auto'''
 +
 
 +
'''range-for'''
 +
 
 +
'''initializer lists'''
 +
 
 +
'''constructor chaining'''
 +
 
 +
'''thread library'''
 +
 
 +
'''lambdas'''
 +
 
 +
'''tuples'''
 +
 
 +
'''new algorithms'''
 +
 
 +
'''regular expressions'''

Revision as of 15:50, 11 July 2013

Below I list a number of new C++11 features that should be interesting for use in the Hall D Online.

The most important ones concern programming safety, i.e. they plug safety loopholes in C++ that have been there since the beginning. The second type concern programming convenience, i.e. they make the code easier to write and understand.

Although we do not have any hard-and-fast programming rules for the online, I strongly feel the safety features should be used in all new code. I recommend use of the convenience features, but this is a personal decision. Even if you don't use them you should be familiar with them since they will appear in online code written by others.

Note that I take it for granted the old C++98 features will be used regularly (e.g. the STL).

My discussion below is brief. For a comprehensive discussion of C++11 see the Wikipedia article on C++11. See also the article on Ten C++11 Features Every C++ Developer Should Use.


Safety

override

nullptr

static assert and type traits

smart pointers

move semantics


Convenience

auto

range-for

initializer lists

constructor chaining

thread library

lambdas

tuples

new algorithms

regular expressions