亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 5695 | 回復(fù): 18
打印 上一主題 下一主題

[C++] C++什么時(shí)候能有“反射”。 [復(fù)制鏈接]

論壇徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龍
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥豬
日期:2014-04-01 08:56:02亥豬
日期:2014-04-08 08:38:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-07 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-10-20 14:06 |只看該作者 |倒序?yàn)g覽
或者有什么靠譜的方式解決這個(gè)嗎?

論壇徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龍
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥豬
日期:2014-04-01 08:56:02亥豬
日期:2014-04-08 08:38:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-07 06:20:00
2 [報(bào)告]
發(fā)表于 2015-10-20 14:22 |只看該作者
網(wǎng)上有不少,但是貌似都不怎么靠譜啊。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀(jì)念章
日期:2016-04-23 00:51:2315-16賽季CBA聯(lián)賽之山東
日期:2016-04-17 12:00:2815-16賽季CBA聯(lián)賽之福建
日期:2016-04-12 15:21:2915-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-24 21:38:2715-16賽季CBA聯(lián)賽之福建
日期:2016-03-18 12:13:4015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-05 00:55:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-04 21:11:3615-16賽季CBA聯(lián)賽之天津
日期:2016-11-02 00:33:1215-16賽季CBA聯(lián)賽之浙江
日期:2017-01-13 01:31:49
3 [報(bào)告]
發(fā)表于 2015-10-20 14:28 |只看該作者
C++ reflection在N3996等提案里,目前還在審議,不知道猴年馬月才能成為正式標(biāo)準(zhǔn),更不知道猴年馬月才能在編譯器里實(shí)現(xiàn)。
如果你急著用,可以用這個(gè) https://github.com/AustinBrunkhorst/CPP-Reflection/
效果不錯(cuò),但是你需要設(shè)置一堆東西,有點(diǎn)煩。

論壇徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龍
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥豬
日期:2014-04-01 08:56:02亥豬
日期:2014-04-08 08:38:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-07 06:20:00
4 [報(bào)告]
發(fā)表于 2015-10-20 14:38 |只看該作者
回復(fù) 3# windoze

看來(lái)還是有希望的啊。

我大C++神教就是這么feature rich!
   

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
5 [報(bào)告]
發(fā)表于 2015-10-20 15:29 |只看該作者
本帖最后由 yulihua49 于 2015-10-20 15:57 編輯
fender0107401 發(fā)表于 2015-10-20 14:06
或者有什么靠譜的方式解決這個(gè)嗎?

我在C里實(shí)現(xiàn)了映射,就是結(jié)構(gòu)映射。據(jù)此開(kāi)發(fā)了SRM   --- Struct Relational Mapping 對(duì)應(yīng)JAVA的ORM ---- Object Relational Mapping。
進(jìn)一步實(shí)現(xiàn)了數(shù)據(jù)庫(kù)運(yùn)行時(shí)泛型處理。
http://blog.chinaunix.net/uid-8804348-id-2013147.html
看我簽名的博客吧,全是相關(guān)內(nèi)容。
可以建立運(yùn)行時(shí)模板庫(kù)。
說(shuō)實(shí)在的,STL真是名不副實(shí),應(yīng)該叫STM,Standard Template Macro。它全是在編譯期處理的。

如果你在編譯期不知道具體的數(shù)據(jù)結(jié)構(gòu),它一點(diǎn)辦法都沒(méi)有。

運(yùn)行時(shí)泛型,就是編譯時(shí)不知道數(shù)據(jù),運(yùn)行時(shí)才知道。這樣才能寫(xiě)出運(yùn)行時(shí)模板庫(kù)。
這需要反射技術(shù)。
http://www.72891.cn/forum.p ... ;extra=#pid24464073
2樓的那些鏈接。


論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
6 [報(bào)告]
發(fā)表于 2015-10-20 16:01 |只看該作者
本帖最后由 yulihua49 于 2015-10-20 16:02 編輯
yulihua49 發(fā)表于 2015-10-20 15:29
我在C里實(shí)現(xiàn)了映射,就是結(jié)構(gòu)映射。據(jù)此開(kāi)發(fā)了SRM   --- Struct Relational Mapping 對(duì)應(yīng)JAVA的ORM ----  ...

SDBC簡(jiǎn)介里摘錄一段:

八、泛型和模板:
SDBC在網(wǎng)絡(luò)傳輸和數(shù)據(jù)庫(kù)存取中,需要把用戶(hù)數(shù)據(jù)(struct,結(jié)構(gòu)體)轉(zhuǎn)換成字符串、JSON等格式(序列化)或反之,也需要把它們或它們中的部分?jǐn)?shù)據(jù)存入數(shù)據(jù)庫(kù)(insert,update),或從數(shù)據(jù)庫(kù)中的一個(gè)表、一組關(guān)聯(lián)的表中的全部或部分?jǐn)?shù)據(jù)取出到結(jié)構(gòu)。SDBC提供各種通用的函數(shù)處理這些問(wèn)題。應(yīng)用的數(shù)據(jù)結(jié)構(gòu),是根據(jù)用戶(hù)需求定義的,SDBC的那些通用函數(shù)并不知道被處理的數(shù)據(jù)是怎樣定義的,這就涉及一個(gè)問(wèn)題:泛型處理。這里的‘泛’就是指廣泛的,通用的。與之相對(duì)的就是‘特’,特殊的,特定的,專(zhuān)用的。說(shuō)到泛型處理,人們自然想到C++的STL。STL提供一些通用的對(duì)象來(lái)處理通用的問(wèn)題,它通過(guò)模板對(duì)通用對(duì)象進(jìn)行定義和聲明,你可以把自定義的數(shù)據(jù)類(lèi)型提交給它處理。非?上В琒TL只處理‘泛’數(shù)據(jù),對(duì)‘特’數(shù)據(jù)只處理它的指針,對(duì)其內(nèi)容一無(wú)所知而無(wú)法處理。如果你一定要他處理‘特’數(shù)據(jù),你就要提供一組‘特’函數(shù)給它,這個(gè)‘特’數(shù)據(jù)最終還是你自己處理的。因此,STL的模板我們稱(chēng)之為‘泛模板’。SDBC遇到的問(wèn)題是,每一個(gè)‘泛’函數(shù)要處理‘特’數(shù)據(jù),如果對(duì)每個(gè)‘特’數(shù)據(jù)編寫(xiě)一組‘特’函數(shù),顯然繁瑣而無(wú)意義。它采用的方法是,為每一個(gè)‘特’數(shù)據(jù)編寫(xiě)一個(gè)‘特’模板,由‘泛’函數(shù)根據(jù)‘特’模板來(lái)處理‘特’數(shù)據(jù)。由于C語(yǔ)言的結(jié)構(gòu)(struct)在運(yùn)行時(shí)是無(wú)法解析的,所以需要采用模板來(lái)說(shuō)明結(jié)構(gòu)里的內(nèi)容。與STL的‘泛模板’相對(duì),SDBC的模板也可以稱(chēng)為‘特模板’。為每個(gè)數(shù)據(jù)結(jié)構(gòu)寫(xiě)模板,是個(gè)繁瑣而易錯(cuò)的工作,SDBC提供了一組工具幫助應(yīng)用開(kāi)發(fā)人員,可以從數(shù)據(jù)庫(kù)表結(jié)構(gòu)自動(dòng)生成結(jié)構(gòu)和模板的定義,還可以寫(xiě)一個(gè)簡(jiǎn)單的元數(shù)據(jù)文件來(lái)生成結(jié)構(gòu)和模板的定義。將來(lái)也可能將‘泛模板’和‘特模板’結(jié)合起來(lái)使用,使泛型編程更加方便實(shí)用。
常用的泛型系統(tǒng)還有g(shù)oogle的protobuf系統(tǒng),它實(shí)際上是一個(gè)可反射的對(duì)象Message,它可以認(rèn)為是個(gè)‘泛’結(jié)構(gòu),你必須在應(yīng)用中使用Message對(duì)象進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ),它負(fù)責(zé)將Messge進(jìn)行序列化和反序列化,可用在網(wǎng)絡(luò)傳輸數(shù)據(jù)處理中,但目前還不能與關(guān)系數(shù)據(jù)庫(kù)互相映象。而SDBC模板系統(tǒng)在任何系統(tǒng)和任何編譯環(huán)境下,使用普通的,原生態(tài)的(不得進(jìn)行pack指定,不得由編譯器優(yōu)化結(jié)構(gòu)布局)結(jié)構(gòu),這使得應(yīng)用程序最方便、快捷的處理自己的數(shù)據(jù)(經(jīng)過(guò)pack的結(jié)構(gòu)在很多CPU架構(gòu)下不能正常使用)。
在此基礎(chǔ)上,SDBC提供了數(shù)據(jù)庫(kù)包裝器,支持多種主流關(guān)系數(shù)據(jù)庫(kù)的映象(其他各種數(shù)據(jù)庫(kù)的映象機(jī)制也不難編寫(xiě))。使應(yīng)用程序能夠更方便可靠高效率的使用數(shù)據(jù)庫(kù)。目前支持ORACLE、DB2、MYSQL,其高級(jí)包裝器DAU(Data Access Unit)功能極大的簡(jiǎn)化了數(shù)據(jù)庫(kù)操作,并使運(yùn)行效率接近系統(tǒng)極限。對(duì)SYBASE部分支持(采用CT-LIB,也具有簡(jiǎn)化開(kāi)發(fā)的能力,支持自愈式連接池,支持程序柔性化,但暫時(shí)沒(méi)有DAU功能)。這個(gè)包裝器有助于應(yīng)用程序的適應(yīng)性,就是在用戶(hù)需求不斷變化,甚至數(shù)據(jù)結(jié)構(gòu)不斷變化時(shí),你的應(yīng)用程序只需極少的變化或不變化,我們稱(chēng)之為程序柔性化。當(dāng)然如果你不使用包裝器,SDBC支持你原生態(tài)的使用任何數(shù)據(jù)庫(kù)。
在SDBC庫(kù)中,pack目錄下提供了基本數(shù)據(jù)映象的泛型方法,dau目錄下提供高級(jí)數(shù)據(jù)映象的泛型方法(SRM和DAU)。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀(jì)念章
日期:2016-04-23 00:51:2315-16賽季CBA聯(lián)賽之山東
日期:2016-04-17 12:00:2815-16賽季CBA聯(lián)賽之福建
日期:2016-04-12 15:21:2915-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-24 21:38:2715-16賽季CBA聯(lián)賽之福建
日期:2016-03-18 12:13:4015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-05 00:55:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-04 21:11:3615-16賽季CBA聯(lián)賽之天津
日期:2016-11-02 00:33:1215-16賽季CBA聯(lián)賽之浙江
日期:2017-01-13 01:31:49
7 [報(bào)告]
發(fā)表于 2015-10-20 16:51 |只看該作者
回復(fù) 5# yulihua49

除去純動(dòng)態(tài)的那些功能,比如在運(yùn)行時(shí)生成一個(gè)class之類(lèi),其它多數(shù)場(chǎng)合你需要的是一個(gè)編譯/運(yùn)行時(shí)混合的反射庫(kù),大家都知道用C++做serialization/deserialization有多麻煩。
一些典型的應(yīng)用常境如JSON/XML <--> struct,ORM等不需要完整的動(dòng)態(tài)特性,比如說(shuō)你在程序里不用struct,只用tuple,JSON序列化之類(lèi)的東西還真能純用template直接寫(xiě)出來(lái)。
reflection之類(lèi)的東西更多的是用來(lái)支持class/struct,比如get/set member by index/name之類(lèi),用tuple倒是沒(méi)有access by index煩惱,可惜tuple里面的元素沒(méi)名字,一堆magic number看一會(huì)兒就腦袋疼。

動(dòng)態(tài)訪問(wèn)成員函數(shù)的特性其實(shí)絕大多數(shù)情況下靠virtual+函數(shù)指針就夠了,有std::function這種包裝也方便不少。當(dāng)然也會(huì)有access by index/name之類(lèi)的問(wèn)題,但需要這么調(diào)成員函數(shù)的場(chǎng)合不多。

論壇徽章:
36
子鼠
日期:2013-08-28 22:23:29黃金圣斗士
日期:2015-12-01 11:37:51程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-12-14 06:20:00CU十四周年紀(jì)念徽章
日期:2015-12-22 16:50:40IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-25 06:20:0015-16賽季CBA聯(lián)賽之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16賽季CBA聯(lián)賽之福建
日期:2016-04-07 11:25:2215-16賽季CBA聯(lián)賽之青島
日期:2016-04-29 18:02:5915-16賽季CBA聯(lián)賽之北控
日期:2016-06-20 17:38:50技術(shù)圖書(shū)徽章
日期:2016-07-19 13:54:03程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00
8 [報(bào)告]
發(fā)表于 2015-10-20 18:06 |只看該作者
come on script go go go

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
9 [報(bào)告]
發(fā)表于 2015-10-20 20:59 |只看該作者
本帖最后由 yulihua49 于 2015-10-20 21:21 編輯
windoze 發(fā)表于 2015-10-20 16:51
回復(fù) 5# yulihua49

除去純動(dòng)態(tài)的那些功能,比如在運(yùn)行時(shí)生成一個(gè)class之類(lèi),其它多數(shù)場(chǎng)合你需要的是一個(gè) ...

我確實(shí)是SRM,映射到結(jié)構(gòu)。不過(guò),當(dāng)完全的動(dòng)態(tài)方法被使用時(shí),實(shí)際上是生成了一個(gè)結(jié)構(gòu)布局的一個(gè)內(nèi)存塊。它無(wú)法按結(jié)構(gòu)存取數(shù)據(jù),只能用泛型化的方法存取。
使用XML對(duì)象或JSON對(duì)象直接映射數(shù)據(jù)庫(kù)是不恰當(dāng)?shù)。?dāng)你進(jìn)一步使用批量操作時(shí),就會(huì)發(fā)現(xiàn),你無(wú)法映射一個(gè)數(shù)組,OCI或CLI綁定數(shù)組時(shí)需要一個(gè)固定的元素地址間隔,我可以用結(jié)構(gòu)數(shù)組實(shí)現(xiàn)。XML,JSON?算了吧,鬼知道元素地址間的間隔是多少。
最近的一個(gè)OLAP項(xiàng)目,采用分布式并行計(jì)算,就是依靠數(shù)組操作取勝。否則,數(shù)據(jù)庫(kù)沒(méi)辦法比文件來(lái)的快,之前人們擔(dān)心數(shù)據(jù)庫(kù)不能滿(mǎn)足性能要求。
http://www.72891.cn/thread-4189018-1-1.html
2樓的程序就是批量綁定數(shù)組的包裝器。那個(gè)recs就是一個(gè)結(jié)構(gòu)數(shù)組。rec_num就是記錄數(shù)量。
那個(gè)結(jié)構(gòu)就是由模板描述,模板在DAU里。1樓日志里那個(gè)語(yǔ)句,有許多date類(lèi)型的列,有各自不同的格式要求。這個(gè),json表達(dá)不了,XML可以用屬性來(lái)表達(dá),但是比較費(fèi)事。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀(jì)念章
日期:2016-04-23 00:51:2315-16賽季CBA聯(lián)賽之山東
日期:2016-04-17 12:00:2815-16賽季CBA聯(lián)賽之福建
日期:2016-04-12 15:21:2915-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-24 21:38:2715-16賽季CBA聯(lián)賽之福建
日期:2016-03-18 12:13:4015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-05 00:55:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-04 21:11:3615-16賽季CBA聯(lián)賽之天津
日期:2016-11-02 00:33:1215-16賽季CBA聯(lián)賽之浙江
日期:2017-01-13 01:31:49
10 [報(bào)告]
發(fā)表于 2015-10-20 23:21 |只看該作者
回復(fù) 9# yulihua49

先不說(shuō)性能,只討論一下語(yǔ)法。
假設(shè)一個(gè)struct S:

  1. struct S  {
  2.     int m1;
  3.     double m2;
  4.     std::string m3;
  5. };
復(fù)制代碼
如果有一系列操作可以訪問(wèn)其成員,比如:

  1. S s;
  2. reflected<S>(s).set_attr("m1", 10);
  3. for(size_t i=0; i<reflected<S>::attr_count; i++) {
  4.     std::cout << reflected<S>(s).attr_name(i) << ':' << reflected<S>(s).get_attr(i) << std::endl;
  5. }
復(fù)制代碼
這樣的話從功能上說(shuō)在大多數(shù)場(chǎng)合都?jí)蛴昧恕?br /> 但上面這段代碼有一個(gè)問(wèn)題,reflected<T>::attribuet(...)的返回類(lèi)型無(wú)法確定,如果不想太hack的話,這個(gè)東西應(yīng)該返回一個(gè)variant之類(lèi)的東西,可以用來(lái)容納所有成員的類(lèi)型,比如針對(duì)上面的S返回類(lèi)型可以是variant<int, double, std::string>。

reflected這個(gè)模板無(wú)法用現(xiàn)有的C++語(yǔ)法實(shí)現(xiàn),我正在用libclang做一個(gè)code generator,可以針對(duì)特定的類(lèi)型T生成reflected<T>的特化版本,目前還未完工。

生成出來(lái)的reflected<S>大概是這個(gè)樣子的:

  1. template<>
  2. struct reflected<S> {
  3.     static constexpr size_t attr_count=3;
  4.     typedef std::tuple<int, double, std::string> attr_tuple_type;
  5.     typedef std::tuple<int&, double&, std::string &> attr_accessor_tuple_type;
  6.     typedef cxutil::variant<int, double, std::string> attr_variant_type;

  7.     reflected(S &s)
  8.     : accessor_(s.m1, s.m2, s.m3)
  9.     {}

  10.     void set_attr(size_t n, const attr_variant_type &v) { ... }
  11.     void set_attr(const char *name, const attr_variant_type &v) { ... }

  12.     attr_variant_type get_attr(size_t n) { ... }
  13.     attr_variant_type get_attr(const char *name) { ... }

  14.     constchar *attr_name(size_t n) { ... }

  15. private:
  16.     attr_accessor_tuple_type accessor_;
  17. };
復(fù)制代碼
有了這個(gè)reflected<S>,做ORM的時(shí)候大概就可以這么寫(xiě)(假設(shè)Row::get也返回一個(gè)variant)

  1. template<typename T>
  2. void deserialize_from_db(T &t, Row row) {
  3.     reflected<T> rt(t);
  4.     for(size_t i=0; i<rt.attr_count; i++) {
  5.         rt.set(i, row.get(i));
  6.     }
  7. }
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP