c++ 的 一些术语

来自:https://www.zhihu.com/question/267978646/answer/336056248

STL(Standard Template Library):就是 Stepanov 用 C++ 模板写的库,后来成为了标准库的一部分。

    RAII(Resource Acquisition is Initialization):在构造(初始化)对象时获取资源,令资源在对象生命周期结束后自动释放,特别用来避免因异常而导致资源泄漏。是 C++ 重要特性。
    RTTI(RunTime Type Information):运行时可提供类型的信息,其实就是打开了才可用 dynamic_cast ,以及取得多态对象的 typeid。
    POD(Plain Old Data):兼容 C 的数据类型。
    ODR(One Definition Rule):每个变量、函数、类类型等只能定义一次。
    UB(Undefined behavior):标准中未定义的行为。
    RVO(Return Value Optimization):编译器避免把返回值做复制。
    NRVO(Named Return Value Optimization):在函数内直接用调用方的具名变量作为返回值。
    EBO(Empty Base Optimization):本来每个对象至少要占一字节,但空的基类就免了。
    COW(Copy On Write):复制对象时只引用原来的数据,直至真的要改动才做一次复制。一些 C++ 的标准库字符串类会用这个优化,但现在来说并不一定好。
    PIMPL(Pointer to Implementation):只给调用者指针,不暴露类的定义及细节。
    LSP (Liskov Substitution Principle):符合此原则的继承关系中,子类对象可替代父类对象被使用。
    TMP(Template MetaProgramming):用模版实现元编程。
    ADL(Argument Dependent name Lookup):用调用参数去查找函数。
    CRTP(Curiously recurring template pattern):一种常用的模版实现手法,令一个模版类的基模板类使用自己的定义。
    SFINAE(Substitution Failture Is Not An Error):尝试匹配模板时,如果替代模版参数后出现编译问题,并不当作是错误。C++11 前一些 TMP 会依赖这种特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值