• <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>
            posts - 18,  comments - 104,  trackbacks - 0
            @Bill Gates

            我之前提到這個Hans_Boehm GC, 它由于是Conservative Garbage Collector,所以沒有辦法證明其絕對安全。

            他的算法通過指針的地址判斷指針是否在堆上,重載全局new以后,他控制了所有內(nèi)存分配,他知道堆上最小的地址和最大的地址,然后通過判斷指針的地址是否落在在個區(qū)域內(nèi)部來判斷這個指針在堆上還是棧上。

            這種方法沒辦法實現(xiàn)內(nèi)存緊縮的功能。

            還有,在工程中,用到其他庫的的時候都會考慮包裝,一般不會直接使用,加一個間接層,即使它的內(nèi)存不完全由你控制,但是你還是可以部分控制的。
            re: 自動求導模板庫 尹東斐 2009-12-07 11:10
            下載的文件放在和其他程序文件相同的目錄下,然后#include“ad.h”
            要不你可以放在其他文件下,然后#include “xxx/ad.h"

            具體用法參見前面的example。
            @wulin

            不需要考慮存儲程序的空間,因為數(shù)據(jù)和程序在內(nèi)存中完全沒有區(qū)別。所以從某種角度來看,程序也是數(shù)據(jù)的一種。
            比如:
            class A
            {
            public:
            int i;
            };

            VL_BEGIN_INSPECTOR_DECLARATION
            VL_BEGIN_BASE_CLASS(A)
            VL_ADD_CLASS_MEMBER(i)
            VL_END_CLASS(A)
            VL_END_INSPECTOR_DECLARATION

            A a;

            現(xiàn)在我要通過類似 int x = func(a, "i"); 來的到a中i的值,那這個時候,怎么知道i的類型呢?也就是說func的返回值是從哪里來的?

            不吝賜教~
            @陳梓瀚(vczh)

            >>VL_ADD_CLASS_MEMBER(Weight)可以得到Weight的類型,這個用模板就可以了。

            這個用模板也做不到吧? 除非有typeof之類的操作符,否則拿不到類型的呀。
            這實現(xiàn)看起來很有誘惑力 :0

            有點不太懂,請指教:

            136 VL_BEGIN_BASE_CLASS(Animal)
            137 VL_ADD_CLASS_MEMBER(Age)
            138 VL_ADD_CLASS_MEMBER(Weight)
            139 VL_END_CLASS(Animal)

            在VL_ADD_CLASS_MEMBER的時候,沒有涉及到成員的類型,那么當讀取數(shù)據(jù)的時候,類型是怎么得到的?

            GetConsole()->WriteLine(Converter.FindToStringConverter(Inspector)->ConvertToString(Inspector,Type.Object()));

            你在這里用到了Type.Object(),我想問你是不是把所有類型都包裝起來了,相當于每個類型都有個get_type()之類的方法,如果你是這么實現(xiàn)的,那就沒有問題了。如果不是的話,

            197 VL_ObjectInspector::Ptr Inspector=Manager->GetInspector(L"VL_ObjectType");

            188 VL_ObjectInspector::Ptr Inspector=Manager->GetInspector(VL_InspectorSelector<Animal>::GetID());

            我想這兩句的作用應該是一樣的,只不過VL_InspectorSelector<Animal>是在宏里面特化的,L"VL_ObjectType"是你為所有“內(nèi)建”類型寫的。

            難道Inspector里面包含有每個成員的類型?
            @hdqqq

            嗯,謝謝,領教了。
            @hdqqq

            樓上eXile說了,這個類型是叫函數(shù)類型的,但是它不能被實例化。也就是你的type_func。
            @飄飄白云

            我只是覺得這個rvalue reference是最重要的特性,可以不知不覺的增加效率,所以就決定寫點什么。
            恩,你全文翻譯了,敬佩中,這三篇雖然看了,我覺得rvalue reference比較有意思。

            當然樓上說這些特性微不足道,是因為他還沒到能看出來這些特性強大之處的境界~~

            不過不知道為啥vc10不支持conception,這個鄙人認為是最強大的特性之一了,有了這個,就可以和那種上百KB的error message說再見了。
            @hdqqq

            在模板的位置上,它的確是個類型,但是我不知道你想說明什么?

            整篇文章,我都在嘗試說明在模板參數(shù)的位置上,std::string()只是個標記,純粹用作類型推導,只是這種寫法很容易會誤導人讓人認為那是個構造函數(shù)。而這個誤導源自于 return type deduction,因為在新的C++0x中,可能會有

            int Test()
            {
            return 3;
            }

            type(Test()) i = 8;

            如果這個被實現(xiàn)的話(vs2010已經(jīng)有auto了,我想這個應該不遠了).編譯器可以做返回類型推導,那么在模板參數(shù)的位置上,寫函數(shù)調(diào)用也就不足為奇了。

            所以,這篇文章主要想說明,到目前為止,函數(shù)返回類型是推導不出來,而類似std::string()的寫法只是個折中方案而已。

            當然不是構造函數(shù)調(diào)用。
            @hyrish

            你說的那種是函數(shù)模板,函數(shù)模板的模板參數(shù)可以靠編譯器自動推導,以類型明確的變量為基礎。而在類模板中,只能事先聲明,然后使用,編譯器無法推導。
            這個解法很好,在lambda沒有誕生之前,c++只能這么寫,很折磨人。
            如果用boost::lambda的話,這個問題就可以寫成:

            map<int, int> testMap;
            testMap[1] = 3;
            testMap[2] = 3;
            testMap[4] = 3;
            testMap[6] = 3;

            int nCount = count_if(testMap.begin(), testMap.end(), bind(&pair<const int, int>::first, _1) < 5); // nCount == 3.
            我覺得這個可以考慮重新定義一個
            template <class T, int N>
            class my_allocator
            : public allocator<T>
            {
            //按照N分配空間
            };

            template <int N>
            class my_string
            : public basic_string<char, char_traits<char>, my_allocator<char, N> >
            {};

            這樣子實現(xiàn)起來,不用考慮異常安全等問題,標準庫會考慮這個,因為allocator的實現(xiàn)比起string來,簡單多了。
            re: boost::shared_ptr 的 cast 尹東斐 2009-05-01 23:25
            @陳梓瀚(vczh)

            嗯,謝謝提醒,我理解有問題。
            re: std::endl 是什么? 尹東斐 2009-04-18 21:08
            @OwnWaterloo

            嗯,就是這樣子的。
            其實可以直接從basic_ostream繼承,然后把stream_buf改成自己想要的輸出方式就可以。
            都不知道FPU還能直接算sin,cos,太牛了。
            @Sandy

            對的,我犯錯誤了。 public要放前面。
            像Sunshine Alike的編譯器報的錯就有點奇怪,private指的是access不可見的。
            @Sunshine Alike
            不好意思,public 應該放前面。

            codeblocks 的編譯錯誤有點奇怪的說,因為private的東西對子類來說是可見的,就是是private的,也不至于'base' has not been declared,很奇怪。
            @路人丁
            我嘗試兩個編譯器VS2005 & VS2008,不知道你的編譯器怎么樣?
            很贊。
            我自從看了 C++ Templates are Turing Complete 以后,覺得很汗~
            這些大牛們都已經(jīng)在理論上證明c++ template是圖靈機等價的,也就是說可以在編譯器做任何想做的事,就對研究模板失去了興趣。
            感嘆,模板的技法實在太少了,這么長的代碼,大部分都在重復,真期待0x趕緊到來,可以在模板中使用 <...> .
            多交流吧。
            re: Pascal簡化版 尹東斐 2009-04-09 23:44
            不錯,如果結構設計的好的話,擴展可支持的類型,添加新的功能是很容易的。
            如果你有scope的概念的話,增加函數(shù)功能也很容易。

            加油。
            @陳梓瀚(vczh)

            很精辟,贊。
            @蔡芳鈞
            @wulin

            歡迎來頂 : )
            @jans2002

            模板現(xiàn)在是不好調(diào)試,不過好像VC 10的 intellisence 會有幫助吧。 還沒有用過。

            我目前的水平主要還是自己推,不知道大牛們玩模板是不是和咱寫程序一樣輕松。。。
            @ebenzhang

            boost::any的實現(xiàn)中,用type_info配合static來做類型檢查。
            所以我說他用RTTI。

            我意思是不想通過使用 typeid 獲得 type_info,從而檢查類型。

            我沒有說清楚,謝謝提醒。
            @lwan

            這里還是要動靜結合的,所有cast都是運行期做的事情。在編譯期,能用的運算型關鍵字少得可憐,像 sizeof 這種。所以有必要的時候,可以借助運行期的特性。

            靜態(tài)還是為動態(tài)服務的,不必在他們之間畫出一條道來,從此不往來。只要能盡可能的解決問題,并優(yōu)雅,高效就是王道。
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(4)

            隨筆檔案

            文章分類

            文章檔案

            相冊

            好友博客

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲精品国精品久久99热一| 国产巨作麻豆欧美亚洲综合久久| 伊人久久大香线蕉成人| 日本精品久久久久久久久免费| 久久无码中文字幕东京热 | 国产69精品久久久久777| 久久香蕉一级毛片| 久久天天躁狠狠躁夜夜不卡| 99热成人精品热久久669| 久久精品无码av| 91久久精一区二区三区大全| 久久人人爽人人澡人人高潮AV | 久久亚洲精品成人av无码网站| 国内精品久久国产大陆| 无码乱码观看精品久久| 久久免费线看线看| 狠狠色丁香婷婷久久综合| 久久香蕉国产线看观看99| 亚洲色大成网站WWW久久九九| 国产精品狼人久久久久影院| 久久影院综合精品| 一个色综合久久| 久久男人AV资源网站| 久久99国产精品久久99| 777午夜精品久久av蜜臀| 久久久久综合国产欧美一区二区| 97久久精品无码一区二区| 亚洲AV无码成人网站久久精品大| 久久久精品日本一区二区三区| 国产精品18久久久久久vr| 亚洲级αV无码毛片久久精品| 日本久久中文字幕| 久久人人爽人爽人人爽av| 久久久精品国产亚洲成人满18免费网站 | 久久青草国产精品一区| 日本人妻丰满熟妇久久久久久| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区| 97久久综合精品久久久综合| 久久狠狠高潮亚洲精品| 久久亚洲精品中文字幕三区| 久久91精品久久91综合|