{"id":20798,"date":"2014-06-13T11:00:00","date_gmt":"2014-06-13T11:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2014\/06\/13\/compiler-switch-deprecationremoval-changes-in-visual-studio-14\/"},"modified":"2019-02-18T18:05:21","modified_gmt":"2019-02-18T18:05:21","slug":"compiler-switch-deprecationremoval-changes-in-visual-studio-14-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/compiler-switch-deprecationremoval-changes-in-visual-studio-14-2\/","title":{"rendered":"Compiler Switch Deprecation\/Removal Changes in Visual Studio \u201c14\u201d"},"content":{"rendered":"<p>In the upcoming release of Visual Studio, we are making some changes to the Visual C++ compiler switches. Two areas are impacted by these changes, 1) projects built with certain variations of <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/k8d11d4s.aspx\">\/clr<\/a> and 2) projects using&nbsp;32-bit&nbsp;compiler to detect 64 bit portability issues.<\/p>\n<p>These changes are the outcome of our investigation of the usage rate, customer&nbsp;value and maintenance cost&nbsp;of legacy compiler switches.<\/p>\n<p><strong>What did we remove?<\/strong><\/p>\n<p>The compiler switches listed below have been marked&nbsp;as deprecated in previous releases of Visual Studio and will be removed in VS &ldquo;14&rdquo;.<\/p>\n<ul>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/k8d11d4s.aspx\"><strong>\/clr:oldSyntax<\/strong><\/a>: Tells the compiler to enable CLR functionality, using the old managed syntax, and to produce a mixed executable image. This has been deprecated since VS 2005.<\/li>\n<li><strong><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/yt4xw8fh.aspx\">\/wp64 (and _w64)<\/a>: <\/strong>Tells the compiler to detect 64-bit portability problems on types that are also marked with _w64 keyword. This has been deprecated since VS 2010.<\/li>\n<\/ul>\n<p><strong>What did we deprecate?<\/strong><\/p>\n<p><strong>&nbsp;<\/strong>The compiler support of the following switches will be deprecated in VS&rdquo;14&rdquo; to be completely removed from the compiler in the next VS releases.<\/p>\n<ul>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/85344whh.aspx\"><strong>\/clr:pure<\/strong><\/a>: Tells the compiler to enable CLR functionality and to produce a pure executable image (one that contains only MSIL).<\/li>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/85344whh.aspx\"><strong>\/clr:safe<\/strong><\/a>: Tells the compiler to enable CLR functionality, to produce a pure executable image, and to only allow verifiable source code through the compiler.<\/li>\n<li>This also involves the deprecation of C++ Libraries support of \/clr:pure and \/clr:safe.<\/li>\n<\/ul>\n<p>Note: No changes are made to \/clr. You can still use \/clr switch to build your code. If you use \/clr:pure or \/clr:safe, you need to reconfigure your projects to build with \/clr to&nbsp;produce <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/x0w2664k.aspx\">mixed assemblies<\/a>. If it is necessary to have pure managed assemblies, you need to port your code to C#.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Based on our analysis, we have decided to make these changes in VS &#8220;14&#8221; CTP1. We will continue to focus on the highest value features in the compiler such as the language conformance features which we have provided in loads in this CTP.&nbsp;If you have feedback, send it my way &ldquo;nada@microsoft.com&rdquo;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the upcoming release of Visual Studio, we are making some changes to the Visual C++ compiler switches. Two areas are impacted by these changes, 1) projects built with certain variations of \/clr and 2) projects using&nbsp;32-bit&nbsp;compiler to detect 64 bit portability issues. These changes are the outcome of our investigation of the usage rate, [&hellip;]<\/p>\n","protected":false},"author":303,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[227,65,228,229],"class_list":["post-20798","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-clr","tag-compiler","tag-deprecation","tag-removal"],"acf":[],"blog_post_summary":"<p>In the upcoming release of Visual Studio, we are making some changes to the Visual C++ compiler switches. Two areas are impacted by these changes, 1) projects built with certain variations of \/clr and 2) projects using&nbsp;32-bit&nbsp;compiler to detect 64 bit portability issues. These changes are the outcome of our investigation of the usage rate, [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/20798","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\/303"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=20798"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/20798\/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=20798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=20798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=20798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}