In the list generator described on the lectures, the template arguments must be given in order. For example, to specify the list of ints with defaults except for tracing, one has to write:
typedef LIST_GENERATOR<int,cp,mono,no_counter,
with_tracing>::RET List;
The goal of this exercise is to modify the generator to support
an arbitrary order of arguments, so that we can instead write:
typedef LIST_GENERATOR<int,with_tracing>::RET List;More precisely, in addition to the first mandatory argument, the ElementType, the generator should accept up to 4 optional arguments, at most one from each of the following categories:
Modify list_generator.h according to the above specification and return the modified file. Do not modify list_components.h or add any new files.
Hint: Use the named template arguments technique described on the lectures with cp, ext_ref, etc. as the setters.