不知道C++这七大特性,绝对枉为圈中人
以上代码是constexpr的常见例子之一。既然声明斐波那契数列函数为constexpr, 那么编译器就可以在编译时预运算fib(20). 以是编译之后,可以用constlong long bigval = 2432902008176640000来更换const longlong bigval = fib(20). 请留意,转达参数是一个const 值。这是被声明为constexpr的函数的一个重点——转达参数应该是constexpr或const。不然这里的函数会和平凡函数一样,也就是说编译时不举办预运算。 变量也可所以constexpr. 在这种环境下,这些变量在编译时必需可评估;不然会呈现编译错误。 风趣的是,其后在C++17中引入了constexpr-if 和constexpr-lambda. 5. Tuples元组 与pair很是相同, tuple是各类数据范例的牢靠巨细值的荟萃。 偶然,对比于tuple,行使 std::array更利便。array相同于带有C++尺度库的成果的plain C阵列。这个数据布局是C++11新增的。 6. 类模板参数推导 这个特征的名字还挺烦琐。从C++17开始,尺度类模板也可以举办模板参数推导。之前,模板参数推导只支持函数模板。功效就是:
这种推导是“隐性的”。这对付tuple来说就更利便了。
以上这一特征对不认识C++模板的人来说没有太大用处。 7. 智能指针 指针偶然很可怕。因为C++说话为措施员提供了很洪流平的自由,以是偶然很轻易搬起石头砸本身的脚。并且许多环境下,贫困是由指针造成的。 荣幸的是,C++11引入了智能指针,智能指针比平凡指针便捷得多。它们通过当令开释内存来辅佐措施员防备内存走漏。它们尚有助于代码到达非常安详品级。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |