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

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

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

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

    1. <tfoot id='uJL5J'></tfoot>
    2. 在 C++ 編譯時計算和打印階乘

      Calculating and printing factorial at compile time in C++(在 C++ 編譯時計算和打印階乘)

        <tfoot id='R1R5Y'></tfoot>

      • <small id='R1R5Y'></small><noframes id='R1R5Y'>

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

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

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

                本文介紹了在 C++ 編譯時計算和打印階乘的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                限時送ChatGPT賬號..
                template<unsigned int n>
                struct Factorial {
                    enum { value = n * Factorial<n-1>::value};
                };
                
                template<>
                struct Factorial<0> {
                    enum {value = 1};
                };
                
                int main() {
                    std::cout << Factorial<5>::value;
                    std::cout << Factorial<10>::value;
                }
                

                上面的程序在編譯時計算階乘值.我想在編譯時而不是在運行時使用 cout 打印階乘值.我們如何才能在編譯時打印階乘值?

                above program computes factorial value during compile time. I want to print factorial value at compile time rather than at runtime using cout. How can we achive printing the factorial value at compile time?

                我使用的是 VS2009.

                I am using VS2009.

                謝謝!

                推薦答案

                階乘可以在編譯器生成的消息中打印為:

                The factorial can be printed in compiler-generated message as:

                template<int x> struct _;
                int main() {
                        _<Factorial<10>::value> __;
                        return 0;
                }
                

                錯誤信息:

                prog.cpp:14:32: 錯誤:聚合 ‘_<3628800> __’ 類型不完整,無法定義_::值> __;^

                prog.cpp:14:32: error: aggregate ‘_<3628800> __’ has incomplete type and cannot be defined _::value> __; ^

                這里362880010的階乘.

                在 ideone 上查看:http://ideone.com/094SJz

                See it at ideone : http://ideone.com/094SJz

                所以你在找這個嗎?

                Matthieu 需要一個聰明的技巧來打印階乘并讓編譯繼續.這是一種嘗試.它沒有給出任何錯誤,因此編譯成功并發出一個警告.

                Matthieu asked for a clever trick to both print the factorial AND let the compilation continue. Here is one attempt. It doesn't give any error, hence the compilation succeeds with one warning.

                template<int factorial> 
                struct _{ operator char() { return factorial + 256; } }; //always overflow
                int main() {
                        char(_<Factorial<5>::value>());
                        return 0;
                }
                

                編譯時帶有此警告:

                main.cpp: 在實例化 '_::operator char() [with intfactorial = 120]': main.cpp:16:39: 從這里需要main.cpp:13:48: 警告:隱式常量轉換溢出[-Woverflow] struct _{ operator char() { return factorial + 256;} };//總是溢出

                main.cpp: In instantiation of '_::operator char() [with int factorial = 120]': main.cpp:16:39: required from here main.cpp:13:48: warning: overflow in implicit constant conversion [-Woverflow] struct _{ operator char() { return factorial + 256; } }; //always overflow

                這里1205的階乘.

                ideone 上的演示:http://coliru.stacked-crooked.com/a/c4d703a670060545

                Demo at ideone : http://coliru.stacked-crooked.com/a/c4d703a670060545

                你可以寫一個很好的宏,然后用它來代替:

                You could just write a nice macro, and use it instead as:

                #define PRINT_AS_WARNING(constant) char(_<constant>())    
                
                int main() 
                {
                         PRINT_AS_WARNING(Factorial<5>::value);
                         return 0;
                }
                

                那個看起來很棒.

                這篇關于在 C++ 編譯時計算和打印階乘的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                相關文檔推薦

                Why do two functions have the same address?(為什么兩個函數的地址相同?)
                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 不能)
                  • <tfoot id='hxQSv'></tfoot>
                    • <bdo id='hxQSv'></bdo><ul id='hxQSv'></ul>
                      <i id='hxQSv'><tr id='hxQSv'><dt id='hxQSv'><q id='hxQSv'><span id='hxQSv'><b id='hxQSv'><form id='hxQSv'><ins id='hxQSv'></ins><ul id='hxQSv'></ul><sub id='hxQSv'></sub></form><legend id='hxQSv'></legend><bdo id='hxQSv'><pre id='hxQSv'><center id='hxQSv'></center></pre></bdo></b><th id='hxQSv'></th></span></q></dt></tr></i><div class="q20qs2q" id='hxQSv'><tfoot id='hxQSv'></tfoot><dl id='hxQSv'><fieldset id='hxQSv'></fieldset></dl></div>

                        <tbody id='hxQSv'></tbody>

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

                          <legend id='hxQSv'><style id='hxQSv'><dir id='hxQSv'><q id='hxQSv'></q></dir></style></legend>
                          主站蜘蛛池模板: 苏州注册公司_苏州代理记账_苏州工商注册_苏州代办公司-恒佳财税 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 成人纸尿裤,成人尿不湿,成人护理垫-山东康舜日用品有限公司 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 今日扫码_溯源二维码_产品防伪一物一码_红包墙营销方案 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | 合肥礼品公司-合肥礼品定制-商务礼品定制公司-安徽柏榽商贸有限公司 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 杭州ROHS检测仪-XRF测试仪价格-百科 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 361°官方网站| 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 江苏大隆凯科技有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 |