从字符串生成命名空间
Generate namespace from string
需要不同名称空间下的函数,命名空间反映不同的数据版本,但所有函数都具有相同的签名。请参阅示例
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 (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( ... )
这是不可能的。编译程序时,将丢弃命名空间名称。
也不能有命名空间类型的变量。如果每个版本都是一个类或类的实例,则可以创建一个返回相应实例的函数 - 但命名空间并非如此。
相关文章:
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- CUDA内核和数学函数的显式命名空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 类是C++中的命名空间吗
- 在命名空间中使用全局命名空间中的函数
- 从字符串生成命名空间
- 在命名空间内的类中使用带有运算符重载的字符串流时"no match for ‘operator>>’"
- 如何在宏中获取当前命名空间的字符串
- 命名空间 std 中的字符串不命名类型
- 是否可以在编译时获得一个包含命名空间和类名的字符串
- error:命名空间“std”中的“字符串”未命名类型 std::String isAble(long D, int T
- 使用字符串文字而不使用命名空间std
- 匿名命名空间中的constexpr字符串文字
- When是初始化命名空间的cpp文件中声明的静态字符串