我正在尝试(并已解决)包含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);
}
Run Code Online (Sandbox Code Playgroud)
这条线是
Camera* pC = static_cast<Camera*>(p);
Run Code Online (Sandbox Code Playgroud)
由于pC从未被引用并且在函数结束时超出范围,所以有什么意义呢?我试过把这条线拿出去,它似乎完全没有区别,但这一行出现在很多例子中!我是否遗漏了一些非常明显的东西,或者有一些异常的代码被盲目地从一个例子复制到另一个例子并在很多"教程"中变得流行?