好吧,我找不到方法,基本上它是一个带有参数的变量联合,基本思想,(写为函数)

例1

union Some (int le)
{
  int i[le];
  float f[le];
};

例2
union Some
{
  int le;
  int i[le];
  float f[le];
};

糟糕,这行不通D:
也许是一种使用内部变量来设置长度的方法,但是也不起作用。
谢谢。

最佳答案

不,这是不可能的:le将需要在编译时知道。

一种解决方案是使用模板化联合:

template <int N> union Some
{
    int i[N];
    float f[N];
};
N当然是编译时可评估的。

另一个解决方案可以说是更简洁
 typedef std::vector<std::pair<int, float>> Some;

或基于std::array的类似解决方案。

关于c++ - C++将参数发送给并集(变量并集),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35271453/

10-13 07:05