![]() ![]() And we’ve created a new conformance mode in the compiler, /permissive-, that lets you opt into a mode that disables Microsoft-specific conformance issues. We introduced the standards version switches last year that let you opt-in to using features from the latest draft standard (i.e., C++17). It’s not always easy to migrate all your code to new compiler features all at once. Thank you for taking the time to help us identify issues!įixing conformance bugs in our toolset inevitably requires some changes in your source code. We’ve consistently fixed between 200 and 300 developer-reported bugs in each update. We’ve also heard from you through Connect, User Voice, Report a Problem in the IDE, e-mail, Twitter Facebook at Microsoft Visual Cpp, and many other channels. They are all passing with the VS 2017 compiler. All the code snippets your provided in the survey have been turned into test cases. This was especially true with regards to constexpr, where over 150 of you sent us code samples that showed us constexpr bugs remaining in our compiler. We very much appreciate our customers’ eagerness to tell us where we still have issues. This progress reflects a huge investment across the compiler but we’ve made especially big gains in Expression SFINAE as well as work on constexpr and extended constexpr: our implementation now conforms to the C++14 rules about extended constexpr. We don’t yet have two-phase name lookup from C++98, we don’t have a conforming preprocessor, and we still have an incomplete implementation of Expression SFINAE. There are always bugs, of course, but only three feature areas remain unimplemented. We’ve implemented almost all of the features introduced in the C++11 and C++14 standards. Our compiler conformance progress shows the benefits of both the rejuvenation work and other conformance work. It’s always been important for us to show value in our current compiler, maintain compatibility with existing code, and still prepare for a future where MSVC fully conforms to the standard. We first shipped the rejuvenation work with VS 2015, but we’re still working on it today. We call this work “compiler rejuvenation,” a term that’s used in Jim Springfield’s excellent blog post from September 2015. In 2015 we started on a project that would fundamentally change how our compiler parses and analyzes code. ![]() ![]() We also maintain an open source fork of the Ranges TS that works on our compiler. In addition to our participation in the standards committee meeting, editors from three major Technical Specifications (Coroutines, Modules, and Ranges) work on the MSVC team. The MSVC team is a major contributor to the development of the C++ Standard. We’re not just implementing the C++ Standard, we’re helping to develop it. This post will look back on the progress we’ve made in MSVC and look forward to our plans in the next version. Our team has been focused on making MSVC the best compiler toolset for your development on Windows, and that starts with fully conforming to the existing C++ Standard. Since we first shipped Visual Studio 2015 we’ve talked a lot about Microsoft Visual C++ compiler and library (MSVC) conformance improvements in this blog. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |