Boost logo

Boost :

Subject: Re: [boost] Official warnings policy?
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-11-08 14:19:38

On Sat, Nov 7, 2009 at 11:18 AM, Mateusz Loskot <mateusz_at_[hidden]> wrote:
> Beman Dawes wrote:
>> On Sat, Nov 7, 2009 at 7:13 AM, Daniel James <daniel_james_at_[hidden]> wrote:
>>> On 07/11/2009 10:38, Paul A. Bristow wrote:
>>>>> Stephan Lavavej from Microsoft told me that that this option triggers
>>>>> known bugs in the compiler. He strongly recommends to stay away from it.
>>> Why would he do that for his own company's compiler?
> Yes, however, does really Stephan recommends it?
> That would be the first question.

What, you don't believe me when I tell you that STL personally told me that? :)

With his permission: "While /Za is supported (both by the compiler and
the standard library), we recommend against using it. Although it
increases conformance in several areas (e.g. preventing unqualified
name lookup from reaching into dependent base classes), it isn't
subjected to exhaustive testing like the default setting is. There
have been and will probably continue to be examples of /Za exposing
compiler bugs that otherwise aren't exposed. For example, during
VC10's development, /Za's elided copy constructor check was being
triggered during move construction, when no copy constructor is being
called (even theoretically). In particular, if you compile with
multiple compilers, /Za isn't very useful - other compilers will
detect nonconformant code that /Za would have detected."

I would add that it my experience /Za doesn't make MSVC fully
conformant anyway (I mean, in practice, not only in theory) and given
Stephan's recommendation I no longer use it.

Emil Dotchevski
Reverge Studios, Inc.

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