test/osd: Suppress subobject-linkage warning in SelectMappingAndLayers class
Change SelectMapping and SelectLayers definitions to use non-static arrays of strings.
SelectMappingAndLayers::sma and SelectMappingAndLayers::sly have internal storage
duration, because it is a non-template, non-inline, non-extern const-qualified variable.
As a consequence, in each translation unit sma and sly is a different object.
And because ProgramOptionSelector takes a reference as template argument, then
ProgramOptionSelector<...> are different specializations of ProgramOptionSelector
in different translation units, because the template parameter references different objects in each.
Then, if you include the header in two different translation units, the program will
have undefined behavior, because the definitions of SelectMapping violates the one-definition
rule as they are, roughly said, not semantically identical. The compiler has no way to
decide whether SelectMapping is supposed to have ProgramOptionSelector<value1> or
ProgramOptionSelector<value2> as base class (where value1 and value2 are invented names
for the two instances of io_sequence::tester::lrc::mapping_layer_array_sizes in the
different translation units).