• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            huaxiazhihuo

             

            挖坑,有空填坑


            先挖坑,計(jì)劃寫(xiě)出一系列文章,探討將c++用成動(dòng)態(tài)語(yǔ)言,或者函數(shù)式語(yǔ)言,以達(dá)到快速開(kāi)發(fā)的目的,并且在需要優(yōu)化的情況下,又能夠方便快速的優(yōu)化。現(xiàn)在事務(wù)太多,不知道何時(shí)能填坑

            宏的圖靈完備,用宏生成代碼,特別是反射,模式匹配,實(shí)在必不可少,以至于宏可以與c++的繼承、template、exception等基本組件并列的重要必不可少的補(bǔ)充手段

            最小巧方便使用的單元測(cè)試框架,比gtest,cppunit要好用很多

            自定義內(nèi)存管理器,stl中的allocator是作為模板參數(shù)來(lái)傳遞,嘗試以tls來(lái)傳遞allocator參數(shù),當(dāng)然,必須相應(yīng)的各種容器都要重寫(xiě),修改其缺省構(gòu)造函數(shù),拷貝復(fù)制移動(dòng)拷貝,給元素分配內(nèi)存釋放內(nèi)存等。對(duì)了,還有各種容器的反射信息。每種類(lèi)型的template的容器都有一個(gè)typeinfo對(duì)象,具體的容器又有自己獨(dú)一的typeinfo對(duì)象

            完善完備的reflection,也就是,其他language能夠做的反射的事情,這里只要愿意,也可以做到,非侵入式,可以給int,double等基本類(lèi)型添加反射,給template類(lèi)型的也添加反射信息,保證每種類(lèi)型的反射對(duì)象是唯一的;

            史上功能最完善的fmt的實(shí)現(xiàn),非template,當(dāng)然,外層還需要variadic來(lái)包裝,以類(lèi)型信息。類(lèi)型安全,緩沖安全,高效,通用。通用的意思是,可以fmt到文件,日志,字符串,文本框控件中;類(lèi)型安全的意思是,可以是所有的類(lèi)型都可以fmt,只要該類(lèi)型實(shí)現(xiàn)了相應(yīng)的接口,但是,這種接口是非侵入式的,通過(guò)模板特化。高效的意思是合sprintf系列一樣。調(diào)用的時(shí)候如下:
            fmt(text, "%s %s %d ", 20, 17.5, 'a'); //故意寫(xiě)錯(cuò)%s的,在這里,%s為通用符號(hào)
            fmt(file, "{%s-}",{1, 2, 3}); //輸出 1-2-3到文件中,也即是能夠fmt容器對(duì)象,橫線-為容器對(duì)元素的分隔符

            帶有切片功能的數(shù)組,此數(shù)組類(lèi)型還支持子類(lèi)型數(shù)組到基類(lèi)型數(shù)組的隱式轉(zhuǎn)換,也即是需要用到基類(lèi)型數(shù)組的參數(shù),子類(lèi)型數(shù)組都可以適應(yīng)

            haskell的map,filter,fold算法在C++下的方便靈活組合性的改造,使用時(shí),就好像C#的linq那么爽快,當(dāng)然,沒(méi)有l(wèi)ambda的參數(shù)自動(dòng)推導(dǎo),畢竟還不如

            stackless協(xié)程

            c++下的monad

            wpf的依賴(lài)屬性在c++下的實(shí)現(xiàn),gui框架的不可缺少的要素

            tupple的功能擴(kuò)展,通過(guò)宏,不需要寫(xiě)類(lèi)型,用起來(lái)就好像函數(shù)式語(yǔ)言原生的那么爽的可能

            好像haskell或者f#那樣的模式匹配的結(jié)構(gòu)體

            C++下完完全全實(shí)現(xiàn)狗語(yǔ)言的那種鴨子類(lèi)型的接口

            面向?qū)ο蟮纳钊胩接懀瑢?duì)于企鵝或者雞是一種鳥(niǎo),繼承了鳥(niǎo),但是沒(méi)有繼承了會(huì)飛的接口,在編譯期就能報(bào)錯(cuò),在運(yùn)行期也不能對(duì)其找到會(huì)飛的接口

            具體類(lèi),基本類(lèi)型,沒(méi)有虛函數(shù),但是又能實(shí)現(xiàn)接口的方式,是實(shí)實(shí)在在的接口,里面有純虛函數(shù),也即是非侵入式的實(shí)現(xiàn)接口,上面宇宙最強(qiáng)悍的fmt就是用到這里的技術(shù)

            vistor模式和抽象工廠的解耦合,或者又叫,multi dispatch

            類(lèi)型安全的消息,一條消息就代表了一種函數(shù)調(diào)用,不是win32的那種一點(diǎn)也不安全的類(lèi)型系統(tǒng),然后可以向任何類(lèi)發(fā)送消息,動(dòng)態(tài)添加消息的反應(yīng),消息隊(duì)列,消息和消息參數(shù)的保存,actor,command模式,redo或undo的輕松實(shí)現(xiàn),消息廣播

            空基類(lèi)優(yōu)化的運(yùn)用,除了多繼承(ATL)或者內(nèi)嵌類(lèi)(MFC),還有其他方式,那是以組合方式,通過(guò)少量的模板和少量的宏,通過(guò)搭配組裝(多繼承空基類(lèi))各種基類(lèi),就能完成一個(gè)com組件

            消息系統(tǒng)的構(gòu)建,gui框架的編寫(xiě)

            ........

            博大精深的c++!只是想說(shuō),上面的一切,在C++下全部都是可行的,當(dāng)然,宏,template,多繼承必須大用特用,只是,奇妙的是,主類(lèi)的內(nèi)存布局卻很干凈,甚至可以沒(méi)有虛函數(shù)
            不知道有生之年能否填完坑,以之為勵(lì)吧!
            c++的同學(xué)們也充分發(fā)揮想象力吧,太多的奇技淫巧了。

            posted on 2016-05-09 20:36 華夏之火 閱讀(1341) 評(píng)論(8)  編輯 收藏 引用 所屬分類(lèi): c++技術(shù)探討

            評(píng)論

            # re: 挖坑,有空填坑 2016-05-09 21:21 jigloo

            我仿佛看了一個(gè)一只巨大的人形自走嘴炮。
            http://eznewlife.com/focus_photos/100/2012_05_0131.jpg  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑 2016-05-10 08:10 呵呵

            你牛B,宏是禍患的根源,大量使用宏等于自尋煩惱。哪個(gè)軟件宏用的比例大,哪個(gè)Bug無(wú)數(shù),后期維護(hù)就明白了。  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑 2016-05-10 10:03 華夏之火

            老朽也排斥宏啊,但是,c++又沒(méi)有反射,沒(méi)有模式匹配,沒(méi)有原生的tupple支持等等,在用這些好東西的時(shí)候,不用宏,就要寫(xiě)大量的重復(fù)代碼。比如,f1函數(shù)返回值為tupple<int,string>。與其寫(xiě):auto tt = f1();auto num=get<1>(tt);auto text=get<2>(tt);就不如用宏自動(dòng)生成這三行代碼,TUPPLE_VALUES(num,text,f1)  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑 2016-05-10 16:51 Richard Wei

            歡迎回來(lái)...  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑 2016-05-10 18:20 華夏之火

            @Richard Wei
            一直都想回來(lái)的,不過(guò),可能也來(lái)不了,很多代碼要寫(xiě),并且還不是用C++開(kāi)發(fā)。很久沒(méi)用C++了  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑[未登錄](méi) 2016-05-10 20:47 Arthur

            嗯,坑挖好了就可以把自己埋了...
            記得挖深點(diǎn)哦  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑[未登錄](méi) 2016-05-11 18:16 春秋十二月

            你主要是做哪方面的開(kāi)發(fā)?  回復(fù)  更多評(píng)論   

            # re: 挖坑,有空填坑 2016-05-11 19:12 華夏之火

            @春秋十二月
            和c++無(wú)關(guān)的事情。C#,java,python,javascript等,主要還是C#  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(6)

            隨筆分類(lèi)

            隨筆檔案

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久99国产精品久久久| 7777久久久国产精品消防器材| 色综合合久久天天综合绕视看| 国产精品无码久久久久| 国产精品久久久香蕉| 久久99毛片免费观看不卡 | 久久精品中文字幕无码绿巨人 | 伊人久久大香线蕉精品不卡| 久久天天躁狠狠躁夜夜avapp| 久久天天躁狠狠躁夜夜躁2O2O| 中文字幕亚洲综合久久| 7777久久久国产精品消防器材| 精品久久久无码中文字幕天天| 99精品久久精品一区二区| 国产无套内射久久久国产| 一本久久免费视频| 国内精品伊人久久久久网站| 亚洲欧美日韩中文久久| 婷婷久久精品国产| 亚洲国产成人久久综合碰碰动漫3d | 精品一区二区久久| 狠狠色狠狠色综合久久| 久久精品国产一区二区电影| 国产午夜精品久久久久免费视 | 久久AV高清无码| 久久久久人妻一区二区三区| 久久五月精品中文字幕| 久久精品国产亚洲网站| 97久久超碰国产精品2021| 久久综合亚洲欧美成人| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲国产精品综合久久网络| 久久精品国产亚洲7777| 国内精品久久久久久久久| 国内精品久久久久| 久久久精品一区二区三区| 久久国产精品久久久| 99久久精品九九亚洲精品| 亚洲国产精品人久久| 精品国产热久久久福利| 久久综合成人网|