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

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

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

    1. <small id='IxneN'></small><noframes id='IxneN'>

    2. <i id='IxneN'><tr id='IxneN'><dt id='IxneN'><q id='IxneN'><span id='IxneN'><b id='IxneN'><form id='IxneN'><ins id='IxneN'></ins><ul id='IxneN'></ul><sub id='IxneN'></sub></form><legend id='IxneN'></legend><bdo id='IxneN'><pre id='IxneN'><center id='IxneN'></center></pre></bdo></b><th id='IxneN'></th></span></q></dt></tr></i><div class="h7v7zl7" id='IxneN'><tfoot id='IxneN'></tfoot><dl id='IxneN'><fieldset id='IxneN'></fieldset></dl></div>
    3. 為什么 std::function 的初始化程序必須是可復制構

      Why the initializer of std::function has to be CopyConstructible?(為什么 std::function 的初始化程序必須是可復制構造的?)

        <tbody id='f50xy'></tbody>

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

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

                本文介紹了為什么 std::function 的初始化程序必須是可復制構造的?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                限時送ChatGPT賬號..

                根據http://en.cppreference.com/w/cpp/utility/functional/function/function,初始化器的類型,即形式(5)中的F,應滿足CopyConstructible的要求.我不太明白這個.為什么 F 不能只是 MoveConstructible?

                According to http://en.cppreference.com/w/cpp/utility/functional/function/function, the type of the initializer, i.e., F in form (5), should meet the requirements of CopyConstructible. I don't quite get this. Why is it not OK for F to be just MoveConstructible?

                推薦答案

                std::function 在內部使用類型擦除,因此 F 必須是可復制構造的,即使您使用的特定 std::function 對象從未被復制.

                std::function uses type erasure internally, so F has to be CopyConstructible even if the particular std::function object you are using is never copied.

                類型擦除工作原理的簡化:

                A simplification on how type erasure works:

                class Function
                {
                    struct Concept {
                        virtual ~Concept() = default;
                        virtual Concept* clone() const = 0;
                        //...
                    }
                
                    template<typename F>
                    struct Model final : Concept {
                
                        explicit Model(F f) : data(std::move(f)) {}
                        Model* clone() const override { return new Model(*this); }
                        //...
                
                        F data;
                    };
                
                    std::unique_ptr<Concept> object;
                
                public:
                    template<typename F>
                    explicit Function(F f) : object(new Model<F>(std::move(f))) {}
                
                    Function(Function const& that) : object(that.object->clone()) {}
                    //...
                
                };
                

                您必須能夠生成 Model::clone(),這會強制 F 為 CopyConstructible.

                You have to be able to generate Model<F>::clone(), which forces F to be CopyConstructible.

                這篇關于為什么 std::function 的初始化程序必須是可復制構造的?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                相關文檔推薦

                Why do two functions have the same address?(為什么兩個函數的地址相同?)
                mixing templates with polymorphism(混合模板與多態性)
                When should I use the keyword quot;typenamequot; when using templates(我什么時候應該使用關鍵字“typename?使用模板時)
                Dependent name resolution amp; namespace std / Standard Library(依賴名稱解析命名空間 std/標準庫)
                gcc can compile a variadic template while clang cannot(gcc 可以編譯可變參數模板,而 clang 不能)
                Strong typedefs(強類型定義)
                <legend id='ID4RL'><style id='ID4RL'><dir id='ID4RL'><q id='ID4RL'></q></dir></style></legend>

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

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

                    • <bdo id='ID4RL'></bdo><ul id='ID4RL'></ul>

                        1. 主站蜘蛛池模板: PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 北京中创汇安科贸有限公司| 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 房间温控器|LonWorks|海思 | 2025第九届世界无人机大会 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 橡胶接头_橡胶软接头_可曲挠橡胶接头-巩义市创伟机械制造有限公司 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | TMT观察网_独特视角观察TMT行业 派财经_聚焦数字经济内容服务平台 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 爆炸冲击传感器-无线遥测传感器-航天星百科 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 博客-悦享汽车品质生活|