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

  • <tfoot id='49Bp1'></tfoot>

      • <bdo id='49Bp1'></bdo><ul id='49Bp1'></ul>

        <small id='49Bp1'></small><noframes id='49Bp1'>

        <legend id='49Bp1'><style id='49Bp1'><dir id='49Bp1'><q id='49Bp1'></q></dir></style></legend>
        <i id='49Bp1'><tr id='49Bp1'><dt id='49Bp1'><q id='49Bp1'><span id='49Bp1'><b id='49Bp1'><form id='49Bp1'><ins id='49Bp1'></ins><ul id='49Bp1'></ul><sub id='49Bp1'></sub></form><legend id='49Bp1'></legend><bdo id='49Bp1'><pre id='49Bp1'><center id='49Bp1'></center></pre></bdo></b><th id='49Bp1'></th></span></q></dt></tr></i><div class="vkrb3wq" id='49Bp1'><tfoot id='49Bp1'></tfoot><dl id='49Bp1'><fieldset id='49Bp1'></fieldset></dl></div>

        基于繼承類的模板特化

        Template specialization based on inherit class(基于繼承類的模板特化)
        <tfoot id='3J6jo'></tfoot>
            <tbody id='3J6jo'></tbody>

            <bdo id='3J6jo'></bdo><ul id='3J6jo'></ul>

              <small id='3J6jo'></small><noframes id='3J6jo'>

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

                2. 本文介紹了基于繼承類的模板特化的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我想讓這個專門的不改變主.是否可以根據(jù)其基類專門化某些東西?我希望如此.

                  I want to make this specialized w/o changing main. Is it possible to specialize something based on its base class? I hope so.

                  -編輯-

                  我將有幾個繼承自 SomeTag 的類.我不想為他們每個人編寫相同的專業(yè).

                  I'll have several classes that inherit from SomeTag. I don't want to write the same specialization for each of them.

                  class SomeTag {};
                  class InheritSomeTag : public SomeTag {};
                  
                  template <class T, class Tag=T>
                  struct MyClass
                  {
                  };
                  
                  template <class T>
                  struct MyClass<T, SomeTag>
                  {
                      typedef int isSpecialized;
                  };
                  
                  int main()
                  {
                      MyClass<SomeTag>::isSpecialized test1; //ok
                      MyClass<InheritSomeTag>::isSpecialized test2; //how do i make this specialized w/o changing main()
                      return 0;
                  }
                  

                  推薦答案

                  這篇文章描述了一個巧妙的技巧:http://www.gotw.ca/publications/mxc++-item-4.htm

                  This article describes a neat trick: http://www.gotw.ca/publications/mxc++-item-4.htm

                  這是基本思想.您首先需要一個 IsDerivedFrom 類(它提供運(yùn)行時和編譯時檢查):

                  Here's the basic idea. You first need an IsDerivedFrom class (this provides runtime and compile-time checking):

                  template<typename D, typename B>
                  class IsDerivedFrom
                  {
                    class No { };
                    class Yes { No no[3]; }; 
                  
                    static Yes Test( B* ); // not defined
                    static No Test( ... ); // not defined 
                  
                    static void Constraints(D* p) { B* pb = p; pb = p; } 
                  
                  public:
                    enum { Is = sizeof(Test(static_cast<D*>(0))) == sizeof(Yes) }; 
                  
                    IsDerivedFrom() { void(*p)(D*) = Constraints; }
                  };
                  

                  那么你的 MyClass 需要一個潛在的特殊實(shí)現(xiàn):

                  Then your MyClass needs an implementation that's potentially specialized:

                  template<typename T, int>
                  class MyClassImpl
                  {
                    // general case: T is not derived from SomeTag
                  }; 
                  
                  template<typename T>
                  class MyClassImpl<T, 1>
                  {
                    // T is derived from SomeTag
                    public:
                       typedef int isSpecialized;
                  }; 
                  

                  和 MyClass 實(shí)際上看起來像:

                  and MyClass actually looks like:

                  template<typename T>
                  class MyClass: public MyClassImpl<T, IsDerivedFrom<T, SomeTag>::Is>
                  {
                  };
                  

                  那么你的主菜就可以了:

                  Then your main will be fine the way it is:

                  int main()
                  {
                      MyClass<SomeTag>::isSpecialized test1; //ok
                      MyClass<InheritSomeTag>::isSpecialized test2; //ok also
                      return 0;
                  }
                  

                  這篇關(guān)于基于繼承類的模板特化的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

                  相關(guān)文檔推薦

                  Why do two functions have the same address?(為什么兩個函數(shù)的地址相同?)
                  Why the initializer of std::function has to be CopyConstructible?(為什么 std::function 的初始化程序必須是可復(fù)制構(gòu)造的?)
                  mixing templates with polymorphism(混合模板與多態(tài)性)
                  When should I use the keyword quot;typenamequot; when using templates(我什么時候應(yīng)該使用關(guān)鍵字“typename?使用模板時)
                  Dependent name resolution amp; namespace std / Standard Library(依賴名稱解析命名空間 std/標(biāo)準(zhǔn)庫)
                  gcc can compile a variadic template while clang cannot(gcc 可以編譯可變參數(shù)模板,而 clang 不能)

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

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

                  2. <legend id='JahV3'><style id='JahV3'><dir id='JahV3'><q id='JahV3'></q></dir></style></legend>

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

                          <tfoot id='JahV3'></tfoot>
                              <tbody id='JahV3'></tbody>
                            主站蜘蛛池模板: 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 污水处理设备-海普欧环保集团有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 九爱图纸|机械CAD图纸下载交流中心 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 浙江浩盛阀门有限公司| 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 猎头招聘_深圳猎头公司_知名猎头公司 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备| 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 杭州用友|用友软件|用友财务软件|用友ERP系统--杭州协友软件官网 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆| 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | T恤衫定做,企业文化衫制作订做,广告T恤POLO衫定制厂家[源头工厂]-【汉诚T恤定制网】 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 |