我有一个模板类,具有以下定义:将类型存储为变量?对于模板类?
ImageRescaleDepth<PIXEL_TYPE_INPUT, PIXEL_TYPE_OUTPUT>
这个类使用模板,对于几乎所有自认为是通用的。反正我需要这个应用程序的命令行版本,做图像缩放,目前该系统设置以处理以下类型:
1BIT, 2BIT, 4BIT, unsigned 8 bit, signed 8 bit, unsigned 16 bit, signed 16 bit, unsigned 32 bit, signed 32 bit, float, double.
这些都是由命令行传入的,我把它们转换成一个枚举。
我无法修改ImageRescaleDepth类,因为它是库的一部分。我并不完全想要创建一个巨大的开关或eliseif块,因为会有100个组合。是否有可能,我可以以某种方式将这些类型存储为变量?然后将它们传递给构造函数?
我知道。 那么制作一个100个元件的开关盒是最好的解决方案吗? – UberJumper 2009-12-21 12:36:27
我会使用一个映射,键入一对from/to类型(作为枚举或常量,而不是类型名称)到指向某种创建函数的指针。换句话说,一家工厂。 – 2009-12-21 12:38:52
创建函数是调用每个类型的模板的每个特定的实例(我想这个模板有一个像转换的方法(图片< PIXEL_IN > const&,图片< PIXEL_OUt >&)) – 2009-12-21 14:06:35