Boost logo

Boost :

Subject: Re: [boost] [config] [VC++ 14.0 aka 2015] Removing BOOST_MSVC_ENABLE_2014_JUN_CTP macro requirement.
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2014-11-18 14:38:31

> std::addressof() is in both 2013 and 2015 Preview. I recently found a
> minor issue, which I'm fixing for 2015 RTM - it didn't properly handle
> functions.

[Peter Dimov]
> I think that this is the reason we're defining the macro for it.

I could have fixed this years ago if somebody had told me.

> We probably also need to test it with std::nullptr_t, as this is another
> corner case IIRC.

Works in 2013 (also with my new implementation):

C:\Temp>type meow.cpp
#include <stdio.h>
#include <cstddef>
#include <iostream>
#include <utility>
using namespace std;

int main() {
    printf("%02d.%02d.%05d.%02d\n", _MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 100000, _MSC_BUILD);
    nullptr_t np1;
    nullptr_t np2;
    nullptr_t * p1 = addressof(np1);
    nullptr_t * p2 = addressof(np2);
    cout << boolalpha;
    cout << (p1 == &np1) << endl;
    cout << (p2 == &np2) << endl;
    cout << (p1 != p2) << endl;

C:\Temp>cl /EHsc /nologo /W4 /MTd meow.cpp && meow


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