$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Niels Dekker - mail address until 2008-12-31 (nd_mail_address_valid_until_2008-12-31_at_[hidden])
Date: 2007-09-15 17:22:11
Ralf W. Grosse-Kunstleve wrote:
> The SVN head of boost/utility/value_init.hpp produces a
> Visual C++ 7.1 ICE (see below) when compiling some of
> our Boost.Python extensions.
Thanks again! I finally got a minimal example of how to reproduce the
"INTERNAL COMPILER ERROR":
////////////////////////////////////////////////////////////
#include <boost/utility/value_init.hpp>
class Foo { };
int main() {
boost::value_initialized<Foo *> i; // VC 7.1 ICE!!!
return 0;
}
////////////////////////////////////////////////////////////
MSVC 7.1 just doesn't seem to like "get().T::~T()" when T is a pointer
to an instance of a class. Apparently the bug was fixed with MSVC 8.0.
BTW, MSVC 7.1 *does* accept "(&get())->T::~T()". But anyway, the patch
you suggested is fine to me as well.
> The simple patch below works around the problem.
> I've also tested with with VC 8.0. Is this OK to commit?
Please do! :-)
BTW, Fernando Cacciola and I do have some ideas on how to further
improve value_initialized, so I expect that your patch won't be needed
anymore in the future. But at the moment, your patch is still
definitely necessary!
Kind regards, Niels