Disable generic lambdas in cpp output.
Require C++11 again (not C++14).
Use explicit type string for arrays.

Using auto is ok for assignments, but fails for function taking arrays.
Refine type expression handling.

This avoids some kinds of error, since the parse actions used to call
type(), which fails for example for 'Collection Of Scalar On variable',
since 'variable' will not be declared in the symbol table until
the CheckASTVisitor pass has been run.
Update output to match current compiler.

This mostly undoes the generic lambda change, but also
includes explicit type syntax for arrays.
Added example from havahol.

This makes it easier to ensure it stays working.