The Microsoft Visual C++ team regularly builds MongoDB (and many other open source projects) so we can avoid introducing compiler and standard library bugs. Our build recently broke, due to MongoDB's use of yaml-cpp. Updating yaml-cpp to its latest master commit will fix the problem.
The full chain of events was:
- yaml-cpp used a non-Standard macro `_NOEXCEPT` defined by the MSVC implementation.
- MSVC removed the `_NOEXCEPT` macro in VS 2017 15.8 (released for production on Aug 14, 2018).
- yaml-cpp fixed their usage of this macro on June 30, 2018: https://github.com/jbeder/yaml-cpp/commit/0f9a586ca1dc29c2ecb8dd715a315b93e3f40f79
- However, yaml-cpp 0.6.2 (predating this fix) is still the latest version.
- Compiling MongoDB with VS 2017 15.8 or later emits compiler errors of the form "D:\MongoDB\src\src\third_party\yaml-cpp-0.6.2\include\yaml-cpp/exceptions.h(123): error C3646: '_NOEXCEPT': unknown override specifier".