Boost logo

Boost :

Subject: Re: [boost] [config] msvc-14 config changes heads up
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2016-07-06 16:50:24


On 5 Jul 2016 at 16:44, Stephan T. Lavavej wrote:

> [Beman Dawes]
> > I'm a bit surprised by the removal of BOOST_NO_TWO_PHASE_NAME_LOOKUP.
> > My understanding, which certainly could be wrong, is that update 3
> > internally is doing some of the preliminary work that will enable
> > two-phase name lookup eventually, but two-phase lookup isn't working yet.
>
> That is correct. Here's proof, with our latest development build:
>
> C:\Temp>type meow.cpp
> #include <stdio.h>
>
> void f(int) {
> puts("Standard two-phase!");
> }
>
> template <typename T> void g(T t) {
> f(t);
> }
>
> void f(double) {
> puts("Microsoft one-phase!");
> }
>
> int main() {
> printf("%02d.%02d.%05d.%02d\n", _MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 100000, _MSC_BUILD);
> g(3.14);
> }

For anyone who has used MSVC for any length of time, we automatically
write our code to ensure all overloads precede usage in order to
ensure correct outcomes, sufficiently so many coming originally from
MSVC-land are not aware MSVC is deficient on this. The fact so little
Boost code requires two phase lookup was quite a surprise to me, but
there you have it.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



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