好的,对不起。看起来Visual Studio只是疯了,价值真的很好。至于为什么会发生这种情况,什么时候发生,我不知道。
最后有一个完整的样本,我想知道它是否也为你做了这件事。尝试使用x86和x64版本,然后查看调试器所说的值。
也许这是一件好事,现在我不会错过不必要的复制。
我觉得这很奇怪。每当我复制一个glm :: i64vec2时,它就会被破坏。
但如果我这样做:
glm::i64vec2 copy(glm::i64vec2(1, 1));
在我的主体,它只是有效。 我已删除所有目标文件并从头开始重建程序..任何想法可能出错?
我唯一能想到的是,我在不同的地方以不同的顺序包含了标题,并且不知何故搞砸了。
我真正应该使用的是const引用,但这仍然让我感到害怕。其中一个很容易隐藏起来作为一个bug,给我带来很多麻烦。
我刚刚发现了另一个导致的错误。这次它发生在一个单独的类中。
这失败了,但在主
中也是如此bool test(glm::i64vec2 p_worldPos)
{
return p_worldPos.x == 1;
}
void QuadTree::getObjectsHitInPriority(glm::i64vec2 const & p_worldPos, std::vector<Object*> & p_objects)
{
test(p_worldPos);
嗯,我不知道这意味着什么,但是已经做了以下观察。在我的程序main.cpp中,这失败了
#include <glm/glm.hpp>
#include <iostream>
struct whatthehell
{
bool test(glm::u64vec2 p_test)
{
return p_test.x == 1;
}
};
int main(int argc, char ** argv)
{
whatthehell hell;
if (hell.test(glm::u64vec2(1, 1)) == false)
{
std::cout << "What the hell\n";
}
return 0;
}
好的,更新。这适用于x86,但不适用于x64和我的VS2015。任何人都可以测试这个吗?