It is a convenient data structure for operating on environment-variable
like arrays. The type takes template parameters that control the amount
of statically allocated storage the type has. The type uses this storage
in preference to performing heap allocations and has options to avoid
performing heap allocations altogether when performing insertions.
This design was chosen because it will be used in an environment that
may be memory constrained (just before launching a symbolizer process
where a out-of-memory situation may have ocurred).
Several unit tests are included but the type is not currently used
in any runtimes.
I would prefer if we avoid parameters which can be avoided.
How user should decide which size to use?