When I try to build boost with MSVC2015 with the /std:c++latest flag I get an error:
boostalgorithmstringdetailcase_conv.hpp(33): error C2143: syntax error: missing ',' before '<'
Which points to:
// a tolower functor
template<typename CharT>
struct to_lowerF : public std::unary_function<CharT, CharT>
Now this seems to be due to N4190 as mentioned here: https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs
/std:c++latest also controls the removal of the following old features: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff", P0004R1 "Removing Deprecated Iostreams Aliases", LWG 2385 "function::assign allocator argument doesn't make sense", and various non-Standard features (the std::tr1 namespace, some TR1-only machinery, and the std::identity struct).
When using:
std::string a,b;
return boost::iequals(a,b);
And using boost::ilexicographical_compare.
Its also mentioned here:
https://blogs.msdn.microsoft.com/vcblog/2015/06/19/c111417-features-in-vs-2015-rtm/
Stephan T. Lavavej - MSFT Azarien: Removing auto_ptr/etc. will have positive consequences. It will prevent new code from using outdated/complicated/unsafemachinery, and it will reduce confusion among non-expert users. (For example, uecessary unary_function/binary_function inheritance is common, because many users thought that STL algorithms/containers required this, when in fact only the outdated adapters did.) And auto_ptr in particular is unsafe, because its mutating "copy" constructor silently moves from lvalues.
So how do I get boost to compile with VC2015's /std:c++latest? Right now it appears boost isn't C++17 compatible?
