可能重複:
Aliasing `T*` with `char*` is allowed. Is it also allowed the other way around?這是使用std :: array未定義的行爲嗎?
我使用char
的std::array
A S以保持未知原語類型,這是不超過10個字節長,像這樣的一個值:
std::array<char, 10> val;
*reinterpret_cast<double*>(val.data()) = 6.3;
//blah blah blah...
double stuff = *reinterpret_cast<double*>(val.data());
我讀過那個來回穿越char *
不是你嗎ndefined,因爲編譯器假定一個char *
可以別名任何類型的值。當這個值放在對象內部(我認爲是)一個char
s的數組時,這仍然有效嗎?
注意:我知道我可以在這裏使用聯合,但這會導致我正在做的大量樣板代碼,並且如果有必要,我想避免它,因此是問題。
不同的問題,相同的答案。 – Dan
同樣的問題,不同的單詞。 ; - ] – ildjarn