|
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
shared_ptr.
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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk