参考消息
C++最接近的直接语言前身是C。C++早期曾以“C with Classes”的方向发展,设计目标是在保留C⭐语言效率、底层控制💯能力和既有生态基础的同时,引入类、继承等更适合组织大型程序的机制。后来,这门语言逐渐形成了今天的C++。
所以,看到“某语言是C🎇++的精神传人”时,应先判断文章是🎉在谈设计理念、竞争关系,还是标准版本继承。三种语境的答案并不相同。
如果“17c.c++”出现在文件列表、项目目录或编译任务中,它也可能只是一个名为“17c”的源文件,使用“.c+🎉+”作为文件扩展名。扩展名只能帮助开发工具识别源文件类型,并不能说明该文件一定使用C++17标准编译。实际采用C++11、C++14还是C++17,通常要看编译器设置和项目配置。
C++17并不是对C++14的完全重写,也不是一门全新的语言。它在原有基础上加入了结构化绑定、条件编译式的if constexpr、折叠表达式、内联变量等语言特性,并补充了optional、variant、any和文件系统库等标准库能力。这些变化能够帮助使用者确认自己看到的内容是否确实在讨论C++17。
如果原文中的“17c.c++”确实是某个项目名、账号名或特定文件名,那么仅凭这一串字符无法判断它“属于谁”或“传承自谁”,必须结合原始出处和上下文,不能把它强行解释成某个🔥官方C++概念。
标准写法是C++17,而不是“17c.c++”。C++17表示C++语言在2017年前后确定并使用的一代语言标准,和C++11、C++14、C++20属于同一条版本演进路线。
从版本关系来说,C++17最直接的“传承对象”👍是C++14。C++标准通常是逐步修订和扩展💪的,新版本会保留大量既有语法、库组件和设计原则,同时加入新的语言能力。因此,把C++17称为C++14的“精神传人”可以作为通俗比喻,但更准确的说法是:C++17是C++14之后的一代标准。