Add CXXFLAGS for header dependency calculation

Including C++11 files like <array> requires the preprocessor to be
called with -std=c++11.
Replace explicit array initialization with C++

Explicit array initialization in the style of

  int arr[1] = { [0] = 1 }

is c99, but not valid c++11. This patch implements a template class to
be able to initialize arrays with a similar syntax.
Fix two clang warnings