pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    1. <i id='oM0FB'><tr id='oM0FB'><dt id='oM0FB'><q id='oM0FB'><span id='oM0FB'><b id='oM0FB'><form id='oM0FB'><ins id='oM0FB'></ins><ul id='oM0FB'></ul><sub id='oM0FB'></sub></form><legend id='oM0FB'></legend><bdo id='oM0FB'><pre id='oM0FB'><center id='oM0FB'></center></pre></bdo></b><th id='oM0FB'></th></span></q></dt></tr></i><div class="n5kmbsr" id='oM0FB'><tfoot id='oM0FB'></tfoot><dl id='oM0FB'><fieldset id='oM0FB'></fieldset></dl></div>
        <bdo id='oM0FB'></bdo><ul id='oM0FB'></ul>

      1. <legend id='oM0FB'><style id='oM0FB'><dir id='oM0FB'><q id='oM0FB'></q></dir></style></legend>
        <tfoot id='oM0FB'></tfoot>

        <small id='oM0FB'></small><noframes id='oM0FB'>

        C++03 throw() 說明符 C++11 noexcept 之間的區(qū)別

        Difference between C++03 throw() specifier C++11 noexcept(C++03 throw() 說明符 C++11 noexcept 之間的區(qū)別)

        <small id='AJAca'></small><noframes id='AJAca'>

          <bdo id='AJAca'></bdo><ul id='AJAca'></ul>

            <tfoot id='AJAca'></tfoot>

                  <tbody id='AJAca'></tbody>
                <legend id='AJAca'><style id='AJAca'><dir id='AJAca'><q id='AJAca'></q></dir></style></legend>

                • <i id='AJAca'><tr id='AJAca'><dt id='AJAca'><q id='AJAca'><span id='AJAca'><b id='AJAca'><form id='AJAca'><ins id='AJAca'></ins><ul id='AJAca'></ul><sub id='AJAca'></sub></form><legend id='AJAca'></legend><bdo id='AJAca'><pre id='AJAca'><center id='AJAca'></center></pre></bdo></b><th id='AJAca'></th></span></q></dt></tr></i><div class="fnc5vmh" id='AJAca'><tfoot id='AJAca'></tfoot><dl id='AJAca'><fieldset id='AJAca'></fieldset></dl></div>
                • 本文介紹了C++03 throw() 說明符 C++11 noexcept 之間的區(qū)別的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  throw()noexcept 除了分別在運(yùn)行時(shí)和編譯時(shí)檢查之外,還有什么區(qū)別嗎?

                  Is there any difference between throw() and noexcept other than being checked at runtime and compile time, respectively?

                  這篇維基百科 C++11 文章表明 C++03 拋出說明符已棄用.
                  為什么是這樣,noexcept 是否足以在編譯時(shí)涵蓋所有這些內(nèi)容?

                  This Wikipedia C++11 article suggests that the C++03 throw specifiers are deprecated.
                  Why so, is noexcept capable enough to cover all that at compile time ?

                  [注意:我檢查了這個(gè)問題和這篇文章,但無法確定棄用的確切原因.]

                  [Note: I checked this question and this article, but couldn't determine the solid reason for deprecation.]

                  推薦答案

                  異常說明符已被棄用,因?yàn)楫惓Uf明符通常是一個(gè)糟糕的主意.添加 noexcept 是因?yàn)樗钱惓Uf明符的一個(gè)相當(dāng)有用的用法:知道函數(shù)何時(shí)不會(huì)拋出異常.因此它變成了一個(gè)二元選擇:會(huì)拋出的函數(shù)和不會(huì)拋出的函數(shù).

                  Exception specifiers were deprecated because exception specifiers are generally a terrible idea. noexcept was added because it's the one reasonably useful use of an exception specifier: knowing when a function won't throw an exception. Thus it becomes a binary choice: functions that will throw and functions that won't throw.

                  noexcept 而不是刪除除 throw() 之外的所有 throw 說明符,因?yàn)?noexcept 更強(qiáng)大.noexcept 可以有一個(gè)編譯時(shí)解析為布爾值的參數(shù).如果布爾值為真,則 noexcept 堅(jiān)持.如果布爾值為 false,則 noexcept 不會(huì)粘住,函數(shù)可能會(huì)拋出.

                  noexcept was added rather than just removing all throw specifiers other than throw() because noexcept is more powerful. noexcept can have a parameter which compile-time resolves into a boolean. If the boolean is true, then the noexcept sticks. If the boolean is false, then the noexcept doesn't stick and the function may throw.

                  因此,您可以執(zhí)行以下操作:

                  Thus, you can do something like this:

                  struct<typename T>
                  {
                    void CreateOtherClass() { T t{}; }
                  };
                  

                  CreateOtherClass 會(huì)拋出異常嗎?它可能,如果 T 的默認(rèn)構(gòu)造函數(shù)可以.我們?cè)趺粗v?像這樣:

                  Does CreateOtherClass throw exceptions? It might, if T's default constructor can. How do we tell? Like this:

                  struct<typename T>
                  {
                    void CreateOtherClass() noexcept(is_nothrow_default_constructible<T>::value) { T t{}; }
                  };
                  

                  因此,如果給定類型的默認(rèn)構(gòu)造函數(shù)拋出,CreateOtherClass() 將拋出.這解決了異常說明符的主要問題之一:它們無法向上傳播調(diào)用堆棧.

                  Thus, CreateOtherClass() will throw iff the given type's default constructor throws. This fixes one of the major problems with exception specifiers: their inability to propagate up the call stack.

                  你不能用 throw() 做到這一點(diǎn).

                  You can't do this with throw().

                  這篇關(guān)于C++03 throw() 說明符 C++11 noexcept 之間的區(qū)別的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  In what ways do C++ exceptions slow down code when there are no exceptions thown?(當(dāng)沒有異常時(shí),C++ 異常會(huì)以何種方式減慢代碼速度?)
                  Why catch an exception as reference-to-const?(為什么要捕獲異常作為對(duì) const 的引用?)
                  When and how should I use exception handling?(我應(yīng)該何時(shí)以及如何使用異常處理?)
                  Scope of exception object in C++(C++中異常對(duì)象的范圍)
                  Catching exceptions from a constructor#39;s initializer list(從構(gòu)造函數(shù)的初始化列表中捕獲異常)
                  Should the exception thrown by boost::asio::io_service::run() be caught?(應(yīng)該捕獲 boost::asio::io_service::run() 拋出的異常嗎?)

                    <tbody id='r35SQ'></tbody>
                    <i id='r35SQ'><tr id='r35SQ'><dt id='r35SQ'><q id='r35SQ'><span id='r35SQ'><b id='r35SQ'><form id='r35SQ'><ins id='r35SQ'></ins><ul id='r35SQ'></ul><sub id='r35SQ'></sub></form><legend id='r35SQ'></legend><bdo id='r35SQ'><pre id='r35SQ'><center id='r35SQ'></center></pre></bdo></b><th id='r35SQ'></th></span></q></dt></tr></i><div class="0vgynps" id='r35SQ'><tfoot id='r35SQ'></tfoot><dl id='r35SQ'><fieldset id='r35SQ'></fieldset></dl></div>
                        <bdo id='r35SQ'></bdo><ul id='r35SQ'></ul>
                      • <small id='r35SQ'></small><noframes id='r35SQ'>

                            <tfoot id='r35SQ'></tfoot>

                            <legend id='r35SQ'><style id='r35SQ'><dir id='r35SQ'><q id='r35SQ'></q></dir></style></legend>

                            主站蜘蛛池模板: 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 传爱自考网_传爱自学考试网| 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 安徽成考网-安徽成人高考网| 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 诗词大全-古诗名句 - 古诗词赏析| 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 卫生型双针压力表-高温防腐差压表-安徽康泰电气有限公司 |