0

我有一种情况,我想将 STL Vector 创建为 avector<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>;
 .....
4

2 回答 2

3

可能的解决方案:

if (INPUT_IS_REAL)
    code_path<float>();
else
    code_path<complex<float>>();
于 2012-08-15T14:37:19.297 回答
3

类型是在编译时定义的。您不能在执行期间更改类型。要处理两种不同的数据类型,您需要两段不同的代码;当你知道你正在处理什么输入时,你决定使用哪个。

于 2012-08-15T15:18:09.810 回答