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
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/