我创建了一个SSE支持的 vector 类。
我在一个定期调用的弊端函数内创建了它的实例,这会导致程序启动时崩溃。在全局声明时不会发生此问题。
这是简化的类:
#include <mmintrin.h>
alignas(16) class v3
{
public:
// constructors
inline v3() : m(_mm_setzero_ps()) {}
inline v3(float x, float y, float z) : m(_mm_set_ps(0, z, y, x)) {}
inline v3(__m128 m) : m(m) {}
// Member variables
union
{
struct { float x, y, z; };
__m128 m;
};
};
任何想法?
最佳答案
错误代码0xC0000005
是访问冲突。当涉及SSE时,这总是意味着您正在尝试错位的内存访问。您需要确定哪个操作使用未对齐的操作数。
关于c++ - 创建对象时发生SSE访问冲突崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17890794/