Add "auto" keyword with C++11 interpretation.
Add parsing of trailing return types for C++11.
Add parsing of "final" and "override" for C++11.
Add nullptr literal and type for C++11.

Also allow "std::" scope in front of size_t.
Ignore static_assert() declarations in c++11 code.

The parameters can be parsed as macro parameters in the lexer, since
we are not going to be performing any actions on the parameters.
Add new C++11 noexcept trailing specifier.
Change the class_specifier rules to better match standard.

This should not create any functional changes, it is primarily for
readability.
Simplify the way that tilde is handled in the grammar.
Allow the "final" specifier in class definitions for C++11.

I could not find any way to do this without introducing shift-reduce
conflicts.  I turned on glr-parser to allow the parser to look ahead
as far as necessary in order to choose the correct rules.
Add function bodies "= delete" and "= default" for C++11.
Add parsing of enum classes for C++11.

To support enum classes, EnumInfo was made into a typedef of ClassInfo.
Add specifier "thread_local" for C++11 support.
Add IsExplicit to conversion operators for C++11 support.
Add literal operator "" for C++11 support.
Allow string prefixes and user-defined suffixes for C++11.

The code in vtkParsePreprocess.c does not understand prefixes or suffixes
on strings, so prefixed strings or strings with user defined suffixes may
not appear in preprocessor directives, except within the body of a #define.
Support raw string literals for C++11.
Require leading underscore for user-defined string suffix.

The C++11 standard says that any sequence of ID characters immediately
following any literal are a user-defined literal suffix and are in fact
part of the literal.  For strings, this is a big problem, because some
headers have constructs like "string"MACRO where a string and a macro
ID are adjacent.  Both clang and gcc have taken the step of requiring
that all suffixes start with an underscore, to make it so that fewer
existing headers break the standard.  I've decided to do the same.
Add alias declarations for C++11 support.

Template alias declarations are parsed but are not stored.
Add char16_t and char32_t types for C++11 support.
Add explicit template instantiation, with extern for C++11.