• <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>

            天秤座的唐風

            總會有一個人需要你的分享~!- 唐風 -

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              13 隨筆 :: 0 文章 :: 69 評論 :: 0 Trackbacks
            共2頁: 1 2 
            居然發現 SFINAE 正是我要的解決方案~!
            后來試了一下下面這段實現,就 OK 了……
             
            class DataFromFile
            {
            public:
                DataFromFile(
            char const *a_fileName)
                    :dataStream(a_fileName, std::ios::binary
            |std::ios::in)
                
            { assert(dataStream.good());}
                
            ~DataFromFile() 
                
            { dataStream.close();}
            public:
                template 
            <typename T> inline
                typename boost::disable_if
            <boost::is_class<T>, DataFromFile&>::type 
                
            operator>> (T& a_data)        
                
            {                                                  
                    dataStream.read((
            char *)&a_data, sizeof(T));   
                    
            return *this;                                     
                }

            private:
                std::fstream dataStream;
            }
            ;
             
            必須要贊一下 boost 的 enable_if ,確實是應用 SFINAE 相當優雅的一種方式~!
             
            你的回復中對于輸入輸出流的解釋,我還是不太理解,呵呵,要學的東西真多哇,C++ 的 IO 流和 IO 流的本地化是我比較“恐懼”的部分。有沒有什么好庫可以代替?
            對于學習這塊,你有什么好的推薦?
             
             
            re: SFINEA in C++ 唐風 2009-11-15 10:31
            @OwnWaterloo
            WLW 支持類似“Rich text”的編輯器(標簽頁是“編輯”,只要cppblog上的CSS沒有另外設置,那么看到基本一致的效果)與一個純文件的編輯器(標簽頁是“源代碼”,可以獲取相應的html代碼),兩個是連動的。

            有時候我大面積更改已發布的文章中內容的時候,也是先在編輯頁面修改,然后在源代碼頁面把html代碼拷出來,直接帖在cppblog(cnblogs)的編輯器里(純文本模式)。

            WLW 在本地還有什么其它格式我就不清楚了,不過我想應該想滿足diff的要求。
            不過直接導入PDF貌似不行……傳說word可以直接帖,保留格式,不過我沒用過,我很久沒用word了……哈哈

            嗯嗯,特化~~
            記得以前看 STL 的代碼的時候,在區分不同類型的copy時,也有用這種方式。
            對我個人而言,唯一覺得不喜歡特化的是感覺點“重復”的味道。

            感覺 concept 要優雅很多(可惜C++0x中夭折了)。
            re: SFINEA in C++ 唐風 2009-11-14 18:00
            @OwnWaterloo
            謝謝指正!已經修改了~
            憑記憶寫的,沒驗證就放上去了,不嚴謹啊不嚴謹啊,呵呵

            你的大作剛剛閱讀了,你學得比我透~
            我沒用C++做過什么實際的東西,一直浮在表面上。

            PS:
            關于代碼字體:
            直接用 Windows Live writer 加上插件 from visual studion 寫的,然后直接發布,感覺還不錯。在 cnblog 上正文的字體沒變化,不過 cppblog 上,有些字的大小變了,唉……
            博主的標題把CppBlog的側邊欄撐爆了!呵呵
            std::map
            本身不就是排序的嗎?為什么還要倒到vector里排?不解
            re: std::initializer_list in C++0x 唐風 2009-08-27 08:55
            @YESHG!
            “夠用”是好,“好用”那就更好啦!呵呵
            這次的新標準是經過10年沉淀的結果,自然散發出很成熟和理性的氣息。
            雖然不可能做到完美,但也非常出色了。

            以后我們再使用std::map,結合著new for loop和auto,就會覺得它和python中的Dict一樣的方便和好用。感覺有點動態的味道!

            再沒有lambda之前,std::for_each之類的泛型算法有如雞肋,boost::lambda的實現又過于復雜使人望而生畏。現在好了,我們可以自由地“在線”定義函數。這會促進更多的更好的泛型代碼出現并廣泛應用。也就促進了抽象和重用。
            re: std::initializer_list in C++0x 唐風 2009-08-25 22:33
            @YESHG!
            花個幾天時間看下Wiki上的條目就OK啦,不用每天研究,哈哈。。

            新版的C++在“易用性”上有了不少改進。
            但對于C++,我最想的是能有好、符合標準的C++編譯器支持各種嵌入式器件。
            這位仁兄已很很猛了,哈哈
            向你學習啊~~~~~
            re: windbg基礎篇--異常上下文 唐風 2009-08-22 16:30
            在下最近才剛開始學
            希望以后能多看到你寫的漂亮的文章!!!
            關注中……
            南大阿sir的好帖
            后業被北工大的曾毅“借”用,在網上可查,頗有一段風波。
            自己頂一下,呵呵~!
            今天看了 BS 自己的觀點,雖然失望,但還是冷靜。大師的風范躍于紙上:
            http://www.ddj.com/cpp/218600111;jsessionid=WR2OKD31YZVEKQSNDLOSKHSCJUNN2JVN?pgno=1
            原來他自己也投了反對票,雖然他為此工作了七年之久~
            “Please don't condemn the committee for being cautious. This was not a "Bjarne vs. the committee fight," but a discussion trying to balance a multitude of serious concerns. I and others are disappointed that we didn't take the opportunity of "fix and ship," but C++ is not an experimental academic language. Unless members are convinced that the risks for doing harm to production code are very low, they must oppose. Collectively, the committee is responsible for billions of lines of code. For example, lack of adoption of C++0x or long-term continued use of unconstrained templates in the presence of "concepts" would lead to a split of the C++ community into separate sub-communities. Thus, a poor "concept" design could be worse than no "concepts." Given the choice between the two, I too voted for removal. I prefer a setback to a likely disaster. ”
             
            高山仰止~!
            re: USACO征程的新開始 唐風 2009-07-14 08:36
            LZ你好
            雖然我沒試過USACO,在算法方面也很“陀”,但我想,USACO可能不會是讓人在C++的認識和運用上會產生質的飛躍的東西?

            不過,羨慕你,青春年少時就有這么多的想法和這么好的條件。
            加油,相信你一定會成功的~!
            !!
            七星重劍,出刃見血,哈哈。
            學習了!
            re: 這是我向往的生活 唐風 2009-06-29 20:52
            “人道天涼好個秋。”“少年不識愁滋味”
            原詞意境與您的大作貌似相反……
            PS:
              附上的代碼中,第一個 while 中(切線斜率大于 -1 )的判別子 p 是直接用橢圓方程來計算的,第二個 while 中(切線斜率小于 -1 )中使用的是增量計算。
              原來第一個 while 中也是使用增量法來計算的,但在斜率為 -1 的附近,橢圓的變形比較嚴重,感覺像是一段很明顯的 -1 斜率的直線。可能是計算式的精度有問題?但沒有細查。先改成上面的方式,用著先,以后再回來優化。
            Mark 下。
            re: 推薦數學書 唐風 2009-06-15 20:32
            統計學、概率論不受重視么?
            感覺挺重要的啊。
            確實是很精巧!!
            嗯,看來多讀讀高手寫的代碼還是很有裨益的。

            不過坦白地講,我個人更欣賞用C++模板來實現這類似的效果(只在必要的時候輔之以宏,比如要實現(__NR_##name)或是換函數名之類的效果)。

            在Boost::lambda中也有類似的技巧,不過是宏加模板來完成。
            一般來講,泛化類型時用模板,而要修改字符以生成不同的函數時,再加點宏的技巧。
            上面的你舉的例子小改下:
            #define _syscall1(ResType, functionName, a) \ 
            template 
            <typename Arg>                     \ 
            ResType functionName(Arg a)                 \ 
            {                                           \ 
                ResType __res;                          \ 
                __asm__ 
            volatile ("int $0x80"           \ 
                    : 
            "=a" (__res)                      \ 
                    : 
            "0" (__NR_##functionName),"b"(a));\ 
                
            if (__res >= 0)                         \ 
                
            return __res;                           \ 
                errno 
            = -__res;                         \ 
                
            return -1;                              \ 
            }
             

            當然,Linux內核是不用C++的,所以宏是唯一的選擇了~~~
            共2頁: 1 2 
            欧美午夜精品久久久久久浪潮| 久久青青草原精品国产软件| 男女久久久国产一区二区三区| 亚洲色婷婷综合久久| 久久精品国产亚洲AV麻豆网站| 成人精品一区二区久久| 久久精品国产亚洲5555| 亚洲AV无码久久精品成人 | 色综合久久久久综合体桃花网| 国产精品美女久久久久久2018| 国内精品久久久久国产盗摄| 日产精品久久久久久久| 99麻豆久久久国产精品免费 | 久久婷婷五月综合色奶水99啪| 久久国产精品-国产精品| 一97日本道伊人久久综合影院| 国产精品9999久久久久| 久久久久久午夜精品| 亚洲国产成人久久综合一| 久久久久久精品免费免费自慰| 久久艹国产| 99久久精品这里只有精品| 国产麻豆精品久久一二三| 偷偷做久久久久网站| 久久天天日天天操综合伊人av| 久久无码av三级| 国产精品久久久久久一区二区三区| 久久毛片一区二区| 久久综合狠狠综合久久97色| 国产成人精品久久一区二区三区av| 久久精品午夜一区二区福利| 久久综合久久自在自线精品自| 久久无码AV中文出轨人妻| 色偷偷88欧美精品久久久| 思思久久99热免费精品6| 久久久久亚洲AV成人网人人网站 | 亚洲а∨天堂久久精品9966| 久久久久香蕉视频| 久久综合偷偷噜噜噜色| yy6080久久| 久久国产精品成人影院|