SSE 最適化メンバーを含むクラスでの 16 バイト アラインメントの問題を解決しようとしています (そして解決しました)。しかし、私を悩ませているのは、オンラインで見つけた例の大部分に、完全に冗長に見えるが多くの場所で繰り返されているコード行が含まれていることです。
public:
void* operator new (size_t size)throw (std::bad_alloc)
{
void * p = _aligned_malloc(size, 16);
if (p == 0) throw std::bad_alloc();
return p;
}
void operator delete (void *p)
{
Camera* pC = static_cast<Camera*>(p);
_aligned_free(p);
}
問題の行は
Camera* pC = static_cast<Camera*>(p);
pC は決して参照されず、関数の最後で範囲外になるため、それを行うポイントは何ですか? 私は行を取り出してみましたが、まったく違いがないように見えますが、その行は多くの例に表示されます! 本当に明らかな何かが欠けているのでしょうか、それとも異常なコード行が盲目的に例から例へとコピーされ、多くの「チュートリアル」で流行していますか?