没有办法做这样的事情,在 C++ 中有吗?
union {
{
Scalar x, y;
}
Scalar v[2];
};
哪里 x == v[0]
和 y == v[1]
?
原文由 mpen 发布,翻译遵循 CC BY-SA 4.0 许可协议
既然您使用的是 C++ 而不是 C,而且它们属于相同类型,为什么不直接将 xa 引用到 v[0] 并将 ya 引用到 v[1]
原文由 Brian R. Bondy 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答832 阅读
1 回答907 阅读
1 回答940 阅读
1 回答707 阅读
1 回答809 阅读
我以前用过这样的东西。我不确定它是否 100% 符合标准,但对于我需要使用它的任何编译器来说似乎都可以。
如果需要(您可能应该想要),您可以向 operator[] 添加边界检查等,并且您也可以提供 operator[] 的 const 版本。
如果您担心填充(并且不想添加适当的平台特定位来强制取消填充结构),那么您可以使用: