将 8 位值数组重新解释为标准复数值
Reinterpreting array of 8bit values as standard complex values?
我在缓冲区中接收一个复数值数组(16 位整数)。 过去,我处理过这样的情况:
typedef struct {
int16_t re;
int16_t im;
} complex_16_t;
uint8_t * buffer;
// after receiving data into buffer pointer
foo((complex_16_t *) data, length);
我现在必须使用 std::complex
数据类型作为函数foo
的输入,而不是我自己的结构。 我可以使用 std::complex
在不创建第二个缓冲区并复制数据的情况下执行此操作吗?
不便携。 std::complex
仅针对浮点类型指定,而不为int16_t
指定。
如果您的库确实支持该专用化作为非标准扩展,那么希望它还将提供与支持类型相同的保证:将基础类型的数组重新解释为复杂类型的数组一半,可以按照您的要求工作。如果是这种情况,那么代码应该像现在一样适用于complex<int16_t>
类型。
相关文章:
- 请解释"函数1(p1,p2,p3);"的输出
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 解释标准库排序函数C++的比较谓词的工作原理?
- C++标准中(选择)的解释
- 您将如何使用标准引号解释指向基类和派生类成员的指针的这种差异?
- 以符合标准的方式用与数组相同类型的成员重新解释结构
- 如何解释C++标准文档中的"terms and definitions"?
- 我可以合法地在布局兼容的标准布局类型之间重新解释(_C)吗
- 将int重新解释为float的最有效的标准兼容方式
- C++14标准附录A解释
- 将 8 位值数组重新解释为标准复数值
- 指向基的解引用指针的c++ ISO标准解释
- 如何解释标准中的以下段落?
- c++标准库方法名称的解释
- 如何解释规则[命名空间].c++标准中的Udir]p2