Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

problem with 5.1?

H Hahn's picture


I just tried to use ImproveCascade with Opencascade Version 5.1.

When compiling the the Project TKV3d I get the an error:

..\..\inc\Visual3d/TransientManager.hxx(107) : error C2373: 'flush' : redefinition; different type modifiers

The error referes to:

Standard_EXPORT static void ClearDraw(const Handle(Visual3d_View)& aView,const Standard_Boolean std::flush = Standard_True) ;

This is my first time using Improve Cascade and compiling opencascade, so I'm not sure if the error is because of ImproveCascade.

Would be glad if anyone could give me a hint whats wrong.



Patrik Mueller's picture


at the moment it is a problem: http://www.opencascade.org/forumorg/bug.php?bug_id=146&f=8 .

I hope Conrad or the OCC team will fast find a workaround. I also had to go back to VC6 :-((



H Hahn's picture


(hope they fix it!)

Conrad J Poelman's picture

Hi guys,

Sorry, I'm out of town this week and am just catching up on my email. I have not yet tried using ImproveCascade on OpenCascade 5.1, so it doesn't surprise me that there are a few issues. Hopefully I'll have some time to work on this next week.

ImproveCascade uses a fairly simple "search and replace" strategy to add "std:::" to certain places, with a number of hard-wired exceptions to not add it where it doesn't belong. It sounds like I need to add an exception for this case, since "TransientManager.hxx" uses "flush" as a local variable name. In the mean time, either renaming the "flush" variable to something else (probably also needed in "TransientManager.cpp") prior to running ImproveCascade, or manually removing the "std::" prefix from the variable name after running ImproveCascade, should get you over this hump.

-- Conrad

Pawel's picture

I'm compiling OC5.1 under VC.NET 2003. Removing "std::" before "flush" in *Transient header files works fine in my case.