[variant] MSVC7.1 produces an Internal Compiler
I had the same problem with MSV7.1 and resolved it by using project
setting: /Gm, which is under C/C++/Code Generation. Basically, you need
to reduce the debug information.
Yan
-----Original Message-----
From: boost-users-bounces@lists.boost.org
[mailto:boost-users-bounces@lists.boost.org] On Behalf Of
boost-users-request@lists.boost.org
Sent: Tuesday, September 05, 2006 4:46 PM
To: boost-users@lists.boost.org
Subject: Boost-users Digest, Vol 1018, Issue 3
Send Boost-users mailing list submissions to
boost-users@lists.boost.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.boost.org/mailman/listinfo.cgi/boost-users
or, via email, send a message with subject or body 'help' to
boost-users-request@lists.boost.org
You can reach the person managing the list at
boost-users-owner@lists.boost.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Boost-users digest..."
Today's Topics:
1. [BGL] filtered graph missing vertex function (moritz Hilger)
2. Re: Boost.signals with -pthread (Ra?l Huertas)
3. Re: Building Tests With Boost Test (Roman Neuhauser)
4. Re: [BGL] filtered graph missing vertex function
(Stephan Diederich)
5. [variant] MSVC7.1 produces an Internal Compiler error when
variant gets too complicated (Eoin)
6. portable way to determine return type from class member
function (Peter Piehler)
7. Re: [test] Running either unit tests or normal program based
off of command line switches (Jason House)
8. Re: [BGL] filtered graph missing vertex function (moritz Hilger)
9. Using boost::enable_if with template copy constructors
(Tim Robertson)
----------------------------------------------------------------------
Message: 1
Date: Tue, 5 Sep 2006 20:23:46 +0200
From: "moritz Hilger"
Hello Yan, thank you for the advice unfortunately I am still getting the Internal Compiler Errors. This problem is proving to be quite a show-stopper for my library. Kind regards, Eoin Yan Zhang wrote:
I had the same problem with MSV7.1 and resolved it by using project setting: /Gm, which is under C/C++/Code Generation. Basically, you need to reduce the debug information.
Yan
/Gm does not reduce the debug information -- it enables minimal rebuild. On a number of occasions, I have managed to eliminate Internal Compiler Errors by *disabling* this feature (i.e., using /Gm-). Moshe
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Yan Zhang Sent: Wednesday, September 06, 2006 2:58 AM To: boost-users@lists.boost.org Subject: [Boost-users] [variant] MSVC7.1 produces an Internal Compiler
I had the same problem with MSV7.1 and resolved it by using project setting: /Gm, which is under C/C++/Code Generation. Basically, you need to reduce the debug information.
Yan
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of boost-users-request@lists.boost.org Sent: Tuesday, September 05, 2006 4:46 PM To: boost-users@lists.boost.org Subject: Boost-users Digest, Vol 1018, Issue 3
...
Thank you Moshe, I will try this when I home home tonight and report back. Kind regards, Eoin. Moshe Matitya wrote:
/Gm does not reduce the debug information -- it enables minimal rebuild.
On a number of occasions, I have managed to eliminate Internal Compiler Errors by *disabling* this feature (i.e., using /Gm-).
Moshe
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Yan Zhang Sent: Wednesday, September 06, 2006 2:58 AM To: boost-users@lists.boost.org Subject: [Boost-users] [variant] MSVC7.1 produces an Internal Compiler
I had the same problem with MSV7.1 and resolved it by using project setting: /Gm, which is under C/C++/Code Generation. Basically, you need to reduce the debug information.
Yan
-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of boost-users-request@lists.boost.org Sent: Tuesday, September 05, 2006 4:46 PM To: boost-users@lists.boost.org Subject: Boost-users Digest, Vol 1018, Issue 3
...
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
On a number of occasions, I have managed to eliminate Internal Compiler Errors by *disabling* this feature (i.e., using /Gm-).
Moshe
Thank you for your suggestion, unfortunately the /Gm- option does not get rid of this error.
Also Yan, in response to your most recent suggestion; "Try use /Zi instead of /ZI from C/C++/General/Debug Information Format." I am using a Boost.Buildv2 environment and it sets /Z7 as default in Debug mode, also it was including /Zm800 option already, changing it to the max /Zm2000 has no effect neithe does /ZI. However testing the different options I have gotten the project to compile when I manually changed /Z7 to /Zd, unfortunately I achieved this through a hack in the MSVC toolkit setup, I may suggest something related to this option on the Boost.Build mailing list. However a solution without affecting the way applications build would be preferable.
Ok, a solution finally! I figured that my use of make_recursive_variant
and recursive_variant_ was probably at fault as the variant in question
is reasonably large, the two recursive types effectively trebled the
size of its type description.
My solution instead was to use the recursive_wrapper as I show below. It
does work slightly differently, specifically you have to reference the
member vector or map and I am worried that I'm walking close to a
dangerous edge which ICE's could start happening again but the other
option is to write my own object hierarchy based solution which would be
much cruder.
Thanks Yan and Moshe for your suggestions I very much appreciate you
taking the time to think about this error.
Kind regards, Eoin.
struct param_vec;
struct param_map;
typedef boost::variant<
int ,
std::string,
boost::posix_time::ptime,
boost::recursive_wrapper
participants (3)
-
Eoin
-
Moshe Matitya
-
Yan Zhang