Chris Bieneman
2014-Aug-18 22:54 UTC
[LLVMdev] [RFC] Raising minimum required Visual Studio version to 2013 for trunk
I’d like to propose raising the minimum required compiler for the LLVM & Clang trunks for Visual Studio to MSVC 2013. Doing this will allow us to take advantage of a bunch of C++11 features that are not supported by MSVC 2012. According to MSDN (http://msdn.microsoft.com/en-us/library/hh567368.aspx) the list is: * Non-static data member initializers * Variadic templates * Initializer lists * Default template arguments for function templates * Expression SFINAE * Alias templates * Delegating constructors * Explicit conversion operators * Raw string literals * Defaulted and deleted functions Questions, comments, concerns, general feedback? -Chris
Aaron Ballman
2014-Aug-18 23:00 UTC
[LLVMdev] [RFC] Raising minimum required Visual Studio version to 2013 for trunk
On Mon, Aug 18, 2014 at 6:54 PM, Chris Bieneman <beanz at apple.com> wrote:> I’d like to propose raising the minimum required compiler for the LLVM & Clang trunks for Visual Studio to MSVC 2013. > > Doing this will allow us to take advantage of a bunch of C++11 features that are not supported by MSVC 2012. According to MSDN (http://msdn.microsoft.com/en-us/library/hh567368.aspx) the list is: > > * Non-static data member initializers > * Variadic templates > * Initializer lists > * Default template arguments for function templates > * Expression SFINAE > * Alias templates > * Delegating constructors > * Explicit conversion operators > * Raw string literals > * Defaulted and deleted functions > > Questions, comments, concerns, general feedback?We shifted the minimum MSVC version to 2012 in January of this year, and have run into only a few issues where C++11 features exist in MSVC 2013 but not MSVC 2012. So I'm wondering what problem this solves in practice for our code base? Personally, I use MSVC 2013 instead of 2012. But I would hesitate to switch to 2013 as the minimum supported version just yet. It's been out for less than two years and until "14" drops, it is the newest version of the compiler. When we made the switch, the goal was to support only the last two versions of MSVC, and I don't see any strong evidence to support expediting that schedule. I think this is a great plan for when "14" is officially released. ~Aaron
Chris Bieneman
2014-Aug-18 23:04 UTC
[LLVMdev] [RFC] Raising minimum required Visual Studio version to 2013 for trunk
On Aug 18, 2014, at 4:00 PM, Aaron Ballman <aaron at aaronballman.com> wrote:> On Mon, Aug 18, 2014 at 6:54 PM, Chris Bieneman <beanz at apple.com> wrote: >> I’d like to propose raising the minimum required compiler for the LLVM & Clang trunks for Visual Studio to MSVC 2013. >> >> Doing this will allow us to take advantage of a bunch of C++11 features that are not supported by MSVC 2012. According to MSDN (http://msdn.microsoft.com/en-us/library/hh567368.aspx) the list is: >> >> * Non-static data member initializers >> * Variadic templates >> * Initializer lists >> * Default template arguments for function templates >> * Expression SFINAE >> * Alias templates >> * Delegating constructors >> * Explicit conversion operators >> * Raw string literals >> * Defaulted and deleted functions >> >> Questions, comments, concerns, general feedback? > > We shifted the minimum MSVC version to 2012 in January of this year, > and have run into only a few issues where C++11 features exist in MSVC > 2013 but not MSVC 2012. So I'm wondering what problem this solves in > practice for our code base?The motivation for me was when I started looking at cleaning up the cl::opts and really wished that I could use variadic templates. There was also a discussion on IRC about this last week, and it seemed like there was at least a little interest, which is why I bring it up. -Chris> > Personally, I use MSVC 2013 instead of 2012. But I would hesitate to > switch to 2013 as the minimum supported version just yet. It's been > out for less than two years and until "14" drops, it is the newest > version of the compiler. When we made the switch, the goal was to > support only the last two versions of MSVC, and I don't see any strong > evidence to support expediting that schedule. I think this is a great > plan for when "14" is officially released. > > ~Aaron-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140818/60282287/attachment.html>
David Blaikie
2014-Aug-18 23:48 UTC
[LLVMdev] [RFC] Raising minimum required Visual Studio version to 2013 for trunk
For my money: variadic templates and some bug I hit when trying to use forward_as_tuple. On Aug 18, 2014 4:02 PM, "Aaron Ballman" <aaron at aaronballman.com> wrote:> On Mon, Aug 18, 2014 at 6:54 PM, Chris Bieneman <beanz at apple.com> wrote: > > I’d like to propose raising the minimum required compiler for the LLVM & > Clang trunks for Visual Studio to MSVC 2013. > > > > Doing this will allow us to take advantage of a bunch of C++11 features > that are not supported by MSVC 2012. According to MSDN ( > http://msdn.microsoft.com/en-us/library/hh567368.aspx) the list is: > > > > * Non-static data member initializers > > * Variadic templates > > * Initializer lists > > * Default template arguments for function templates > > * Expression SFINAE > > * Alias templates > > * Delegating constructors > > * Explicit conversion operators > > * Raw string literals > > * Defaulted and deleted functions > > > > Questions, comments, concerns, general feedback? > > We shifted the minimum MSVC version to 2012 in January of this year, > and have run into only a few issues where C++11 features exist in MSVC > 2013 but not MSVC 2012. So I'm wondering what problem this solves in > practice for our code base? > > Personally, I use MSVC 2013 instead of 2012. But I would hesitate to > switch to 2013 as the minimum supported version just yet. It's been > out for less than two years and until "14" drops, it is the newest > version of the compiler. When we made the switch, the goal was to > support only the last two versions of MSVC, and I don't see any strong > evidence to support expediting that schedule. I think this is a great > plan for when "14" is officially released. > > ~Aaron > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140818/5f297034/attachment.html>
Gabriel Dos Reis
2014-Aug-24 17:07 UTC
[LLVMdev] [RFC] Raising minimum required Visual Studio version to 2013 for trunk
Disclaimer: I work at Microsoft.>From your list: expression SFINAE is listed as "no"; and support fordefaulted and deleted constructors is only partial in VS 2013 (see the recent blog post about VS 2014 CTP 3). Please report bugs you may find in VC 2013 if they aren't fixed in the latest CTP. Thanks! -- Gaby On Monday, August 18, 2014, Chris Bieneman <beanz at apple.com> wrote:> I’d like to propose raising the minimum required compiler for the LLVM & > Clang trunks for Visual Studio to MSVC 2013. > > Doing this will allow us to take advantage of a bunch of C++11 features > that are not supported by MSVC 2012. According to MSDN ( > http://msdn.microsoft.com/en-us/library/hh567368.aspx) the list is: > > * Non-static data member initializers > * Variadic templates > * Initializer lists > * Default template arguments for function templates > * Expression SFINAE > * Alias templates > * Delegating constructors > * Explicit conversion operators > * Raw string literals > * Defaulted and deleted functions > > Questions, comments, concerns, general feedback? > > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu <javascript:;> http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140824/09a764c3/attachment.html>