支持C++20 的Visual Studio 2019 16.10

虽然之前微软已经预告今年夏天会推出64位的Visual Studio 2022预览版了,不过既有的Visual Studio 2019还是有在继续更新的~

而这次推出的,则是号称支持C++20完整功能的16.10正式版本了!官方的公告是:《Visual Studio 2019 v16.10 and v16.11 Preview 1 are Available Today!》。

这次更新,在C++ 的部分,最主要的应该就是C++20 的支持了~官方是宣称在功能面已经完整(feature-complete)了。

不过在建置时,要设定成/std:c++latest,设定成/std:c++20是会缺少某些功能的。

而在官方的介绍中,特别强调了format、日历与时区的功能。

format
其中,format这个函式库(参考)是基于{fmt}(官网)的文字格式化函式库,可以快速地进行字串的处理。(Boost Format被抛弃了XD)

下面就是一个极为简单的范例:

#include  < format > 
#include  < iostream >
 
int  main ()
{
  auto  version = 20;
  std::cout << std:: format ( " STL is now C++{} feature - complete! " , version ) 
            << std:: endl ;
}

日历和时区
此外,日历和时区则是chrono这个C++11引进的时间函式库的延伸。
他现在变成可以去处理年、月、日、星期几这些本来无法处理的信息,同时也可以处理时区的信息;这点在很多状况下都是满实用的~(参考)

下面是一个简单的例子:

#include  < chrono > 
#include  < iostream >
 
int  main ()
{
  std::chrono:: year_month_day  ymd { std::chrono::May / 23 / 2024 };
  std::cout <<  ymd  <<  " is " 
            << std::chrono:: year_month_weekday ( ymd ). weekday () 
            << std:: endl ;
}

这样就可以轻松地知道某个日期是礼拜几了~

同时,从16.9开始支持的LLVM OpenMP,现在除了x64外,也开始支持x86与ARM64了。

而针对C++20的ranges,微软在《C++20 Ranges are complete in Visual Studio 2019 version 16.10》这篇,则也有另外做说明。

另外,虽然这篇没有提到,但是在之前的《2x-3x Performance Improvements for Debug Builds》时有提到,在16.10 preview 2的时候微软也强化了Debug版的效能、可以到达2 ~ 3倍!

这点对于要跑debug 来找问题的人来说,真的很实际!毕竟以往STL 的debug 效能实在是非常悲剧啊…

不过这次更新下来让Heresy觉得比较尴尬的是,以目前在C++20的标准支持上,感觉上变成Visual Studio领先g++和clang了?
像是format的部分,g++和clang都还没支持,所以如果要用的话,还是得自己去找{fmt}来用了…以前常常是Linux开发环境可以用了,要等VC更新,怎么觉得现在反了?o_O

除了上面C++ 的部分外,不过Visual Studio 整合的Git 功能也做了不少改进,号称可以提高生产力;不过由于Heresy 自己是习惯使用TortoiseGit,所以这部分就让有在用的人自己去玩啰~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值