Boost logo

Boost :

Subject: Re: [boost] [mpl] Problem with VC++14 and boost::mpl::size_t
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-07-27 17:07:49


On 7/27/2015 1:44 PM, Samuel Neves wrote:
> On 27-07-2015 12:56, Edward Diener wrote:
>> On 7/27/2015 6:28 AM, John Maddock wrote:
>>> That builds in release mode, but not debug, weird!
>>
>> What are the different options between release and debug mode ?

To answer my own question compiling with /MDd turns on debug ( and the
define of _DEBUG ) whereas just /MD is for release.

>
> I've tracked the issue down to the `xlocale` header, where the `_Crt_new_delete` class definition depends on the
> `_DEBUG` flag. A minimal example for reproduction, based on it, follows:
>
> struct B {
> #ifdef _DEBUG
> void operator delete(void *) {}
> #endif
> };
>
> struct S : B {
> virtual ~S() {}
> };
>
> namespace boost {
> namespace mpl {
> struct size_t {};
> }
> }
>
> int main() {
> return 0;
> }
>
> using namespace boost::mpl;

I have verified that you are correct. Can you post what you have found
on the bug report page at
https://connect.microsoft.com/VisualStudio/feedback/details/1593471/compile-using-vc-14-erroneously-says-that-size-t-is-ambiguous
?

It might help although STL has already said that a Microsoft employee is
working on a fix, which implies that they probably already know what is
causing the problem.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk