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

    • <bdo id='RLyW0'></bdo><ul id='RLyW0'></ul>
    1. <legend id='RLyW0'><style id='RLyW0'><dir id='RLyW0'><q id='RLyW0'></q></dir></style></legend>

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

        <tfoot id='RLyW0'></tfoot>

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

        為什么兩個函數的地址相同?

        Why do two functions have the same address?(為什么兩個函數的地址相同?)

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

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

              <bdo id='3tZFS'></bdo><ul id='3tZFS'></ul>
                <tbody id='3tZFS'></tbody>

                  <i id='3tZFS'><tr id='3tZFS'><dt id='3tZFS'><q id='3tZFS'><span id='3tZFS'><b id='3tZFS'><form id='3tZFS'><ins id='3tZFS'></ins><ul id='3tZFS'></ul><sub id='3tZFS'></sub></form><legend id='3tZFS'></legend><bdo id='3tZFS'><pre id='3tZFS'><center id='3tZFS'></center></pre></bdo></b><th id='3tZFS'></th></span></q></dt></tr></i><div class="ysccs8i" id='3tZFS'><tfoot id='3tZFS'></tfoot><dl id='3tZFS'><fieldset id='3tZFS'></fieldset></dl></div>
                • 本文介紹了為什么兩個函數的地址相同?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  考慮這個函數模板:

                  template<typename T>
                  unsigned long f(void *) { return 0;}
                  

                  現在,我將 ff 的地址打印為:

                  Now, I print the addresses of f<A> and f<B> as:

                  std::cout << (void*)f<A> << std::endl;
                  std::cout << (void*)f<B> << std::endl;
                  

                  如果在 MSVS10 中編譯,為什么它們打印相同的地址?它們不是兩個不同的功能,因此應該打印不同的地址嗎?

                  Why do they print the same address if compiled in MSVS10? Are they not two different functions and therefore should print different addresses?

                  更新:

                  我意識到在 ideone 上,它會打印不同的地址.MSVS10 優化了代碼,因為該函數不以任何方式依賴 T,因此它產生相同的函數.@Mark 對此的回答和評論很有價值.:-)

                  I realized that on ideone, it prints the different address. MSVS10 optimizes the code, as the function doesn't depend on T in any way, so it produces same function. @Mark's answer and comments on this are valuable. :-)

                  推薦答案

                  由于函數不依賴模板參數,編譯器可以將所有實例化為一個函數.

                  Since the function doesn't depend on the template parameter, the compiler can condense all instantiations into a single function.

                  我不知道你為什么得到 1 作為地址.

                  I don't know why you get 1 for the address.

                  我用我的真實代碼進行了試驗,并得出結論,@Mark 上面所說的在這里非常重要:

                  I experimented with my real code, and concluded that what @Mark said above is very important here :

                  由于函數不依賴于模板參數,編譯器可以將所有實例化為一個函數.

                  我還得出一個結論,如果函數體依賴于T*,而不是T,它仍然為我的不同類型參數生成相同的函數真正的代碼(雖然不是在 ideone 上).然而,如果它依賴于 T,那么它會產生不同的函數,因為 sizeof(T) 對于不同的類型參數是不同的(對我來說很幸運).

                  I also came to a conclusion that if the function-body depends on T*, not on T, it still produces the same function for different type arguments in my real code (not on ideone, though). However, if it depends on T, then it produces different functions, because sizeof(T) differs (fortunately for me) for different type arguments.

                  所以我在函數模板中添加了一個 T 類型的虛擬 automatic 變量,這樣函數就可以依賴于 T 的大小從而強制它產生不同的功能.

                  So I added a dummy automatic variable of type T in the function template, so that the function could depend on the size of T so as to force it to produce different functions.

                  這篇關于為什么兩個函數的地址相同?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                  相關文檔推薦

                  Why the initializer of std::function has to be CopyConstructible?(為什么 std::function 的初始化程序必須是可復制構造的?)
                  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(強類型定義)

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

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

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

                            主站蜘蛛池模板: 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 众能联合-提供高空车_升降机_吊车_挖机等一站工程设备租赁 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 清水-铝合金-建筑模板厂家-木模板价格-铝模板生产「五棵松」品牌 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 免费分销系统 — 分销商城系统_分销小程序开发 -【微商来】 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 吸音板,隔音板,吸音材料,吸音板价格,声学材料 - 佛山诺声吸音板厂家 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 东莞海恒试验仪器设备有限公司| 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 仿古建筑设计-仿古建筑施工-仿古建筑公司-汉匠古建筑设计院 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 裹包机|裹膜机|缠膜机|绕膜机-上海晏陵智能设备有限公司 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 818手游网_提供当下热门APP手游_最新手机游戏下载 |