{"id":20960,"date":"2018-11-07T08:53:37","date_gmt":"2018-11-07T08:53:37","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/vcblog\/?p=20960"},"modified":"2019-02-18T17:47:34","modified_gmt":"2019-02-18T17:47:34","slug":"use-the-official-range-v3-with-msvc-2017-version-15-9","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/use-the-official-range-v3-with-msvc-2017-version-15-9\/","title":{"rendered":"Use the official range-v3 with MSVC 2017 version 15.9"},"content":{"rendered":"<p><span>We\u2019re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for <\/span><a href=\"https:\/\/github.com\/ericniebler\/range-v3\"><span>Eric Niebler\u2019s range-v3 library<\/span><\/a><span>. It\u2019s no longer necessary to use the range-v3-vs2015 fork that was introduced for MSVC 2015 Update 3 support<\/span><span>;<\/span><span> true upstream range-v3 <\/span><span>is now usable <\/span><span>directly with MSVC 2017.<\/span><\/p>\n<p><span>The last <\/span><span>push<\/span><span> to achieve range-v3 support involved Microsoft-sponsored changes in both the MSVC compiler and range-v3.  The compiler changes involved <\/span><span>fixing about 60 historically blocking bugs, of which <\/span><span>30+ <\/span><span>were <\/span><span>alias template bugs in<\/span><span> \/permissive- mode. Changes to range-v3 were to add support for building the test suite with MSVC, and some workarounds for roughly a dozen minor<\/span><span> <\/span><span>bugs that we will be working on fixing in <\/span><span>future<\/span><span> <\/span><span>release<\/span><span>s<\/span><span> <\/span><span>of MSVC.<\/span><\/p>\n<h3><span>How do I g<\/span><span>et range-v3 to tr<\/span><span>y it out?<\/span><\/h3>\n<p><span>The range-v3 changes haven\u2019t yet flowed into a release, so for now MSVC users should use the master branch. You can get range-v3:<\/span><\/p>\n<ul>\n<li><span>Via <\/span><a href=\"https:\/\/github.com\/Microsoft\/vcpkg\"><span>vcpkg<\/span><\/a><span> <\/span><span>with \u201c<\/span><span>vcpkg<\/span><span> install range-v3&#8243;<\/span><span>, or<\/span><\/li>\n<li><span>Directly from <\/span><a href=\"https:\/\/github.com\/ericniebler\/range-v3\"><span>https:\/\/github.com\/ericniebler\/range-v3<\/span><\/a><span>.<\/span><\/li>\n<\/ul>\n<p><span>Note that range-v3&#8217;s master branch is under active development, so it\u2019s possible that the head of the branch may be unusable at <\/span><span>some times<\/span><span>. Releases after 0.4.0 will have MSVC support; until then the commit at <\/span><a href=\"https:\/\/github.com\/ericniebler\/range-v3\/commit\/01ccd0e552860efe00e4e3e55bf823be445aabb4\"><span>01ccd0e5<\/span><\/a><span> is known to be good. Users of <\/span><span>vcpkg<\/span><span> should have no issues: the range-v3 packager will ensure that <\/span><span>vcpkg<\/span><span> installs a known-good release<\/span><span>.<\/span><\/p>\n<h3><span>W<\/span><span>hat\u2019s next<\/span><\/h3>\n<ul>\n<li><span>Continue fixing bugs that get reported from range-v3 usage and development<\/span><span>.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span>Prioritize implementation <\/span><span>of <\/span><span>C++20 Concepts <\/span><span>in<\/span><span> preparation to support <\/span><a href=\"https:\/\/wg21.link\/p0896\"><span>the <\/span><span>concept-based Ranges library<\/span><\/a><span> <\/span><span>that will hopefully be part of the upcoming C++20.<\/span><\/li>\n<\/ul>\n<h3><span>In <\/span><span>closing<\/span><\/h3>\n<p><span>This range-v3 announcement follows <\/span><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/use-the-official-boost-hana-with-msvc-2017-update-8-compiler\/\"><span>our previous announcement about supporting Boost.Hana in 15.8<\/span><\/a><span>. The C++ team here at Microsoft is strongly motivated to <\/span><span>continue improving our support for open source libraries.<\/span><\/p>\n<p><span>We\u2019d love for you to download <\/span><span>Visual Studio 2017 version 15.9 and try out all the new C++ features and improvements. As always, we welcome your feedback. We can be reached via the comments below or via email (<\/span><a href=\"mailto:visualcpp@microsoft.com\"><span>visualcpp@microsoft.com<\/span><\/a><span>). <\/span><span>If you encounter other problems with MSVC or have a suggestion for Visual Studio 2017 please let us know through <\/span><a target=\"_blank\" href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio-2017?view=vs-2017\" rel=\"noopener\" title=\"Protected by Outlook: https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio-2017. Click or tap to follow the link.\"><span>Help &gt; Send Feedback &gt; Report A Problem \/ Provide a Suggestion in the product<\/span><\/a><span>, or <\/span><span>via <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/topics\/C%2B%2B.html\"><span>Developer Community<\/span><\/a><span>. <\/span><span>You can also find us on Twitter (<\/span><a href=\"https:\/\/twitter.com\/visualc\"><span>@VisualC<\/span><\/a><span>) and Facebook (<\/span><a href=\"https:\/\/www.facebook.com\/msftvisualcpp\"><span>msftvisualcpp<\/span><\/a><span>).<\/span><\/p>\n<p><span>If you have any questions, <\/span><span>please feel free to post in the comments below. You can also send any comments and suggestions directly to <\/span><a href=\"mailto:cacarter@microsoft.com\"><span>cacarter@microsoft.com<\/span><\/a><span>, or <\/span><a href=\"https:\/\/twitter.com\/CoderCasey\"><span>@CoderCasey<\/span><\/a><span>.<\/span><\/p>\n<p><span> <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for Eric Niebler\u2019s range-v3 library. It\u2019s no longer necessary to use the range-v3-vs2015 fork that was introduced for MSVC 2015 Update 3 support; true upstream range-v3 is now usable directly with MSVC 2017. The last push [&hellip;]<\/p>\n","protected":false},"author":1529,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270],"tags":[],"class_list":["post-20960","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement"],"acf":[],"blog_post_summary":"<p>We\u2019re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for Eric Niebler\u2019s range-v3 library. It\u2019s no longer necessary to use the range-v3-vs2015 fork that was introduced for MSVC 2015 Update 3 support; true upstream range-v3 is now usable directly with MSVC 2017. The last push [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/20960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/1529"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=20960"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/20960\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=20960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=20960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=20960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}