在C++的世界中,技术进步的步伐从未停止。随着C++11、C++14、C++17和C++20等标准的相继推出,C++语言的功能和性能得到了极大的提升。然而,尽管这些新标准带来了诸多好处,许多公司仍然停留在使用C++11或C++14的阶段。本文将探讨现代C++的重要性,并鼓励企业采用最新的C++标准。
大约一年前,在以色列,惊讶地发现许多公司仍然在使用C++11/14,并且坚持继续这样做。这几乎是在面试过程中问的第一个问题。然后问这些公司,如果有机会,他们是否愿意升级到更新的C++版本。得到的平均回答是“如果有理由,不会回避”,这个回答显示了这些公司对C++的了解是多么有限。
现代C++提供了许多强大的特性,如概念(concepts)、折叠表达式(fold-expressions)、属性(attributes)、constexpr等。这些特性使得C++代码更加简洁、高效和安全。例如,constexpr允许编译时执行,极大地提高了程序的运行效率。而C++17引入的字符串视图(std::string_view)则提供了一种更高效的方式来处理字符串数据。
#include
#include
constexpr long double operator"" _percents(long double percents) {
return percents * 0.01;
}
int main() {
std::string_view text = "Hello, modern C++!";
std::cout << "Text length: " << text.length() << std::endl;
return 0;
}
尽管几乎所有的C++会议都在讨论现代C++的能力,但许多公司仍然没有意识到这些新特性的价值。这让感到非常失望。在Inbal Levi的劝说和Daisy Hollman、Dafna Mordechai以及Baot社区的支持下,决定发表一次演讲,讨论这个应该早就讨论的话题。
演讲的幻灯片可以在GitHub仓库中找到。当演讲上传到YouTube时,这里也会有相应的标签。可以通过关注CoreC++频道来获取更新。
演讲比预期的要好,收到了来自每个人的惊人反馈。在这么多人面前进行第一次演讲非常令人兴奋,希望这将引领C++行业的变革。
如果决定使用“现代”C++,那么是时候开始使用现代C++了(或者至少,如果目前正在使用C++14,请不要寻找现代C++开发者,有人告诉,谎言不能走得太远)。