Boost logo

Boost :

From: Ed Brey (brey_at_[hidden])
Date: 2001-04-10 12:14:10

I recently tried upgrading my project's library to use the latest
version of smart_ptr, and unfortunately, the pragmas that were added to
suppress a spurious warning are triggering an internal compiler error on
VC6.5. VC claims the line causing the problem is operator* in

The project is including smart_ptr.hpp in a precompiled header (and it
would be nice to keep it there), although the error doesn't occur until
a different translation unit is compiled and the template is
instantiated. The program doesn't instantiate scoped_ptr; otherwise, it
might also share the same fate.

It doesn't matter whether incremental compilation is turned on or off:
the error occurs either way.

Removing the pragmas around operator-> from the scoped_ptr and
shared_ptr classes and instead placing them at to the beginning and end
of the file (right after the #includes and right before the final
#endif) solves the problem. It seems that VC is somehow getting
confused when it sees pragmas within a class definition.

Boost list run by bdawes at, gregod at, cpdaniel at, john at