Boost logo

Boost :

Subject: Re: [boost] Windows XP support survey
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2015-05-07 13:42:17


[Niall Douglas]
> BTW are you willing to document how your STL invokes the magic Expression SFINAE support in MSVC?

1. Write the expressions required by is_assignable and allocator_traits.
2. Hope it works.
3. Complain to the compiler team when it explodes.

The compiler will SFINAE out of some expressions for some reasons, but will horribly explode (and sometimes ICE) for other reasons. Even within is_assignable, things like access control have caused problems. Those have been fixed, but there are definitely still problems with arbitrary expressions. I had to be extremely careful while rewriting <functional> to avoid triggering Expression SFINAE, because misapplication of PMFs/PMDs was something the compiler couldn't backtrack from.

We document Expression SFINAE as unsupported, to make it clear that step #3 is not available to users other than the Standard Library.

Also, we have announced that Expression SFINAE *will* be implemented in the compiler in a 2015 Update, supported for production use - but not necessarily Update 1.

STL


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