- 主题:3202年了,c++项目用哪个标准比较好
取决于哪个编译器
MSVC的C++20支持,官方早就宣布全部实现而且可以用于生产了,最近这些年MSVC的步伐很快,早已不是MSVC 6那个时代的印象了
gcc和clang的C++20还缺一些
https://en.cppreference.com/w/cpp/compiler_support
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
那是老黄历了
【 在 leslin 的大作中提到: 】
:
: 以往的经验是vc的进度稍微慢一些。现在反而更快了?
--
FROM 221.218.163.*
能用新的就用新的(当然,要用稳定的新版),这是这几天在翻json序列化的代码时进一步加强的感受
C++委员会逐步搞的那些东西,就是让语言更好用(包括让写库的guru码农、写应用的普通码农也更好用),少搞一些奇技淫巧来绕过编译器的限制。当然他们定标准的速度更快一些那就更好啦
举例子:
1、VC6时代没有变参宏,弄一个通用的日志函数还要拼接,现在直接一个__VA_ARGS__搞定。
2、以前模板里要用decltype, sizeof来做各种参数类型约束的判定,现在直接concept搞定。
【 在 hgoldfish 的大作中提到: 】
: c++11 吧。新的标准也没啥用。
:
--
FROM 123.118.191.*
指的是这个,和使用基类指针各有千秋,按场合来。
https://stackoverflow.com/questions/59784261/stdvariant-vs-pointer-to-base-class-for-heterogeneous-containers-in-c
https://www.cppstories.com/2020/04/variant-virtual-polymorphism.html/
std::variant是静态dispatch,但需要提前知道所有可能的类型。
基类指针是virtual dispatch,性能比上面的差点,但不需要提前知道所有可能的类型。
【 在 CRonaldo31 的大作中提到: 】
: 直接看懵逼了,variant代替基类指针是什么操作
--
修改:z16166 FROM 123.118.191.*
FROM 123.118.191.*
这个没必要吧,除非项目是用了Qt的
Qt要支持的平台非常广,三大桌面、嵌入式、移动端等都要支持,所以不会用太新的c++ feature,普通人的项目一般不需要这么广
【 在 tgfbeta 的大作中提到: 】
: 跟着Qt走
--
FROM 123.118.191.*