[Bf-committers] Compiler error with MSVC6 on SG_Tree.cpp

Peter den Bak bf-committers@blender.org
Mon, 17 May 2004 21:36:35 +0200


Hi,

SG_Tree.cpp comes with compile error's using the MSVC6 compiler.
Using MSVC7 works fine so it is MSVC6 specific.

Here is a piece of code line 101-127:

SG_Tree* SG_Tree::Find(SG_Node *node)
{
	if (m_client_object == node)
		return this;
	
	SG_Tree *left(m_left), *right(m_right);
	
	if (left && right)
	{
		if (right->m_bbox.intersects(node->BBox()))
			std::swap(left, right);
	}
		
	if (left)
	{
		SG_Tree* ret = left->Find(node);
		if (ret) return ret;
	}
	
	if (right)
	{
		SG_Tree* ret = right->Find(node);
		if (ret) return ret;
	}
	
	return NULL;
}

And here is the compiler output:

Compiling...
SG_Tree.cpp
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(106) :
error C2061: syntax error : identifier 'm_left'
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(106) :
error C2061: syntax error : identifier 'm_right'
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(108) :
warning C4551: function call missing argument list
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(108) :
warning C4551: function call missing argument list
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(110) :
error C2227: left of '->m_bbox' must point to class/struct/union
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(110) :
error C2228: left of '.intersects' must have class/struct/union type
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(114) :
warning C4551: function call missing argument list
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(116) :
error C2227: left of '->Find' must point to class/struct/union
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(120) :
warning C4551: function call missing argument list
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(122) :
error C2227: left of '->Find' must point to class/struct/union
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(283) :
error C2374: 'x' : redefinition; multiple initialization
 
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(272) :
see declaration of 'x'
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(288) :
error C2374: 'y' : redefinition; multiple initialization
 
F:\Develop\CVStree\blender\source\gameengine\SceneGraph\SG_Tree.cpp(246) :
see declaration of 'y'
Error executing cl.exe.

blender.exe - 8 error(s), 4 warning(s)

The trouble starts at line 106

Is this another Microsoft bug?
And can someone come up with a solution?

Thanks in advance

Regards,

Peter