用於處理 CxxlMan2 函數庫 TLC 文件的同名項目的小工具。
最好的處理方式是 匯入->排序->匯出,以人工方式處理標示同名的項目。
除非確定自動刪除同名項目不會有問題,否則請小心使用 MultipleClear() 功能
下載:
TlcMultiple_1_0_0.zip
使用範例:
先安裝好 CxxlMan2 函數庫,以下是使用範例
2018年1月1日 星期一
2017年12月29日 星期五
2017年12月26日 星期二
靜態多型
相對於靜態多型就是一般較多使用的的動態多型,如:
class Base { public: virtual void f() = 0; };
class Derived :public Base { virtual void f() override { } public: };若改為靜態多型可能會像以下這樣:
template<typename DERIVED> class Base { public: void f() { static_cast<DERIVED*>(this)->f_Imp(); } };
class Derived :public Base<Derived> { void f_Imp() { } public:
friend class Base<Derived>; };
2017年12月25日 星期一
[分享]template 參數的 class 和 typename 還是有差別
若是要做 class 用,就明確指名 class 吧
// template<typename H> 這在 vs2015 過不了 template<class H> class A { void f() { cout << "OK" << endl; } public: friend H; };
class B { public: void f() { On_a.f(); }
A<B> On_a; };
2017年12月23日 星期六
[轉貼]強制實作
此文截取自 http://www.programmer-club.com.tw/ShowSameTitleN/c/46861.html
用一個範例做個總結,也感謝 coco 提供的 assert,在 C++ 沒有提供 must 繼承實作之下,還能做到類似的效果,讓程式簡潔不少。但問題由原本的強制繼承實作,變成須強制 assert 實作,更不好達成,由此看出 must 繼承實作的須要性
範例主要展示 prototype pattern 及 visitor pattern 的架構,不過 visitor pattern 做了改良,可以
採用 ClassID 做配對,可以在執行時期做較機動的處理,但為了減少篇幅和難度,還是寫死未做較機動的
處理
Class C 是為了表現未強制實作的後果,有幾處做了 remark,把 remark 的地方恢復,就可正常執行
用一個範例做個總結,也感謝 coco 提供的 assert,在 C++ 沒有提供 must 繼承實作之下,還能做到類似的效果,讓程式簡潔不少。但問題由原本的強制繼承實作,變成須強制 assert 實作,更不好達成,由此看出 must 繼承實作的須要性
範例主要展示 prototype pattern 及 visitor pattern 的架構,不過 visitor pattern 做了改良,可以
採用 ClassID 做配對,可以在執行時期做較機動的處理,但為了減少篇幅和難度,還是寫死未做較機動的
處理
Class C 是為了表現未強制實作的後果,有幾處做了 remark,把 remark 的地方恢復,就可正常執行
2017年12月9日 星期六
CMRegSelf 插件註冊輔助
這是一個輔助性的插件,幫忙減輕 cxxlObjectPlugin 插件註冊的繁雜規劃,也減輕應用程式註冊插件的負擔。為此,CxxlMan2 的標準插件 CxxlMan2Plugin 全部修改成全面支援 CMRegSelf。
CMRegSelf 的機制在於讓 CxxlMan2Plugin 插件檔(dll 檔)有自我註冊插件的能力,並提供主程式註冊這些插件檔的功能。同時也提供一個範例,以期能完全瞭解這些運作。
注意!由於不同系列編譯器編碼的差異(比如 vc 與 gcc),不要把它們放置在一起或同一個插件搜尋路徑中,否則註冊處理時會有當掉的危險。所以內定的 CxxlMan2Plugin 資料夾也要有分別,比如分成 C:\CxxlMan2Plugin_vc 和 C:\CxxlMan2Plugin_gcc
下載點:
CMRegSelf_Src_20221110.zip
CMRegSelf 的機制在於讓 CxxlMan2Plugin 插件檔(dll 檔)有自我註冊插件的能力,並提供主程式註冊這些插件檔的功能。同時也提供一個範例,以期能完全瞭解這些運作。
注意!由於不同系列編譯器編碼的差異(比如 vc 與 gcc),不要把它們放置在一起或同一個插件搜尋路徑中,否則註冊處理時會有當掉的危險。所以內定的 CxxlMan2Plugin 資料夾也要有分別,比如分成 C:\CxxlMan2Plugin_vc 和 C:\CxxlMan2Plugin_gcc
下載點:
CMRegSelf_Src_20221110.zip
2017年10月12日 星期四
用 C++11 完美詮釋 Decorator pattern
訂閱:
文章 (Atom)