Documentation updates.
Removed duplicate forward declaration.
Replaced code generator with variadic templates.