工会可以模板化吗?

Dra*_*rax 26 c++ templates unions

似乎联合可以在c ++ 11中进行模板化,例如在std :: optional的参考实现中使用它们.

那可能在c ++ 11之前吗?

Ker*_* SB 29

是的,似乎这一直是允许的.union是一个类,模板是函数或类模板.

标准的相关部分:

  • [温度]

    声明模板声明

    - 声明或定义一个函数或类,[...]

  • [类]

    一个工会与类的关键字定义的类union

(所以有人可能会争辩说,新类型的特征std::is_class是一种轻微的误称;特征应该划分类型的空间,因此is_union是一个独立的,相互排斥的特征.)

  • 我什至不知道“工会是阶级”!很高兴我问了这个问题:) (3认同)

kaz*_*ase 17

是的,我之前使用过类似的结构:

template <typename T>
union test
{
    unsigned char ch[sizeof(T)];
    T variable;
};
Run Code Online (Sandbox Code Playgroud)