キャストについてちょっと質問です。
基本的に、私は次のコードを持っています:
//Array of ALbyte, size is irrelevant
ALbyte buffer[1000];
//...
alcCaptureSamples(m_audioDevice,(ALCvoid*)buffer, sample);
Scott Meyers の効果的な C++ のアドバイスに基づいて、これには C++ スタイルのキャストを使用したいと思います。
reinterpret_cast<ALCvoid*>
しかし、とのどちらを選択すればよいか、よくわかりませんstatic_cast<ALCvoid*>
。彼らは、ポインターを別のポインター型に変換するために使用されるMSDNで言います。reinterpret_cast
しかし、Effective C++では、私は読みました
reinterpret_cast
実装に依存する (つまり、移植できない) 結果を生成する低レベルのキャストを対象としています。たとえば、ポインタを int にキャストします。
そして、これらは非常にまれであるべきです。
では、どのキャストを選べばいいでしょうか?私は明らかに排除const_cast
しdynamic_cast
ましたが、残りのどれを使用する必要があるかを判断できません... (固定サイズの配列をポインターにキャストしたいという事実がわからないため、この質問は実際には役に立ちませんでしたタイプが OpenAL に影響するかどうか)。
または、この場合、C++ スタイルのキャストを完全に回避する必要があります (しかし、なぜですか) ?