Требуются функции в разных пространствах имен, пространство имен отражает разные версии данных, но все функции имеют одинаковую сигнатуру. Пожалуйста, смотрите пример
For version v_1_0 this function is needed v_1_0::decoder::decoding( ... )
For version v_1_1 then this shall be called v_1_1::decoder::decoding( ... )
Я получаю строку версии откуда-то еще. Формат версии в точности соответствует пространству имен. Интересно, смог бы я сгенерировать вызов функции из строковой переменной пространства имен.
Причина, по которой я спрашиваю этот вопрос, состоит в том, что уже существует так много версий, и скоро они будут добавлены. Мне нужно создать длинный цикл if else или switch для вызова функции, которая очень раздражает
switch (version) {
case v_1_0:
v_1_0::decoder::decoding( ... )
break;
case v_1_1:
v_1_1::decoder::decoding( ... )
break;
....
default:
break;
}
Было бы неплохо иметь что-то вроде
auto name_space = get_namespace( version );
name_space::decoding( ... )