【发布时间】:2023-03-29 12:21:01
【问题描述】:
这是我的字节数组(向量)转换器。
template<typename T>
void put(T value) {
int size = sizeof(value);
uint8_t *array;
array = reinterpret_cast<uint8_t *>(&value);
if (littleEndian) {
for (int i = 0; i < size; i++) {
arr.push_back(array[i]);
}
} else {
for (int i = size - 1; i >= 0; i--) {
arr.push_back(array[i]);
}
}
}
如您所见,此函数接受所有变量类型。是否可以过滤类型名?例如。我只想允许uint8_t, int8_t, uint16_t, int16_t etc. + float and double too?我不想发表 10 条 if 声明,因为它看起来不干净。
【问题讨论】:
-
在不同的语句中声明和赋值给
array有什么意义?
标签: c++ templates reinterpret-cast typename