我有一种情况,我想将STL向量创建为vector<float>
或vector<complex<float> >
。程序将根据输入确定运行时的数据格式。
如果没有大量的if / else语句,这似乎是不可能的。这就是我想要做的。显然这不起作用b / c typedef是if / else。
的本地if (INPUT_IS_REAL)
typedef TYPE float;
else
typedef TYPE complex<float>;
vector v1<TYPE>;
vector v2<TYPE>;
.....
答案 0 :(得分:3)
可能的解决方案:
if (INPUT_IS_REAL)
code_path<float>();
else
code_path<complex<float>>();
答案 1 :(得分:3)
类型在编译时定义。您无法在执行期间更改类型。要处理两种不同的数据类型,您需要两个不同的代码段;当你知道你正在处理什么输入时,你决定使用哪个。