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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: myworkstation
打印 上一主題 下一主題

[C++] 【有獎討論】隨著 C++11 的巨大變化,談談你對新STL的展望 [復制鏈接]

論壇徽章:
0
31 [報告]
發(fā)表于 2015-07-06 14:49 |只看該作者
回復 18# shang2010


    不同平臺sizeof(int)都不一樣,難道要統(tǒng)一?統(tǒng)一有什么意義?

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設計版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀念章
日期: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
32 [報告]
發(fā)表于 2015-07-06 15:57 |只看該作者
本帖最后由 windoze 于 2015-07-06 15:58 編輯

回復 29# yulihua49

如果你能把數(shù)據(jù)類型限制在有限的幾個種類,用type switch能簡單點。
比如:

  1. // @SEE: https://github.com/windoze/cxxstuff
  2. #include <cxutil/variant.hpp>

  3. typedef cxutil::variant<int,double,std::string> DBVariant;

  4. struct RDB_set_col_visitor {
  5.     RDB_insert_visitor(DB_cursor *cursor, String column);
  6.     int operator()(int x) &&;
  7.     int operator()(double x) && ;
  8.     int operator()(const std::string &x) &&;
  9. };

  10. DBVariant var(123.45);

  11. var.apply_visitor(RDB_set_col_visitor(cursor, "some_col"));
復制代碼
不過你想把一個struct直接映射到一個Row還是沒什么好辦法。

C++目前完全沒有任何辦法遍歷任意一個struct的成員,所以我在想用clang的compiler plugin寫個代碼生成器,實現(xiàn)類似Rust的Macro的功能。

論壇徽章:
154
2022北京冬奧會紀念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16賽季CBA聯(lián)賽之深圳
日期:2022-11-02 14:02:4515-16賽季CBA聯(lián)賽之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16賽季CBA聯(lián)賽之八一
日期:2023-11-04 19:23:5115-16賽季CBA聯(lián)賽之廣夏
日期:2023-12-13 18:09:34
33 [報告]
發(fā)表于 2015-07-06 16:42 |只看該作者
回復 31# lcofjp


    反正我有個習慣,寫好代碼后會測試一下再commit

論壇徽章:
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年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發(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
34 [報告]
發(fā)表于 2015-07-06 19:22 |只看該作者
本帖最后由 yulihua49 于 2015-07-06 19:45 編輯
windoze 發(fā)表于 2015-07-06 15:57
回復 29# yulihua49

如果你能把數(shù)據(jù)類型限制在有限的幾個種類,用type switch能簡單點。

這是你做的?不過還不是ORM,沒有逃脫流式訪問數(shù)據(jù)庫的宿命。沒辦法做成JAVA的Hibernate那樣的東西?

把結構體映射成數(shù)據(jù)庫行。我已經(jīng)實現(xiàn)了,它不能反射,我就它寫一個說明書,純C的。
這個“說明書”也可以稱為“運行時模版”。它可用于結構的序列化/反序列化,也可以映射數(shù)據(jù)庫。
還可以配合自制的容器,如BB_Tree,Multi_Hash等進行內(nèi)存數(shù)據(jù)庫管理。
感覺一旦實現(xiàn)了這個映射,就打開了通向世外桃源之路。
所以我希望C++盡快實現(xiàn)對象反射,這是根本性的升級。
有了對象反射,說實在的,STL沒啥用。
運行時泛型,比編譯時泛型,好得。。。。根本不是一個世界。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設計版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀念章
日期: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
35 [報告]
發(fā)表于 2015-07-06 20:52 |只看該作者
回復 34# yulihua49

反射和TMP……完全不是一種東西么,一個是純運行時,一個是純編譯時。
這兩個東西拿來比誰好誰壞,有點關公戰(zhàn)秦瓊的趕腳……

論壇徽章:
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年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發(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
36 [報告]
發(fā)表于 2015-07-07 13:30 |只看該作者
本帖最后由 yulihua49 于 2015-07-07 13:56 編輯
windoze 發(fā)表于 2015-07-06 20:52
回復 34# yulihua49

反射和TMP……完全不是一種東西么,一個是純運行時,一個是純編譯時。

STL吧?
STL:任意對象
加入map,檢索map,迭代map
ORM:任意表(或SQL)
插入數(shù)據(jù)庫,檢索數(shù)據(jù)庫,fetch數(shù)據(jù)庫。

ORM的基礎是OM,Object mapping ---- 對象反射。
有了OM,不僅可以ORM,也可以動態(tài)對象處理,類似STL的工作,可以運行時處理。
所有STL那些功能,可以建立運行時庫,就是框架,像JAVA那樣?梢圆辉诰幾g期處理了----把STL改成運行時。


這個想法的來源,一個哥們看了我的SRM --- Struct Relational Mapping,問我,為什么不弄成STL那樣---他極其崇拜STL。
我看了一下STL,感覺完全不是一回事。原因呢,一個是運行時,一個是編譯時。
還有,一個是在對象之外處理對象,如把它加入vector,map什么的,一個是在結構(對象)之內(nèi)處理他的內(nèi)容。
但是他們也有相似之處,如開頭所示。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設計版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀念章
日期: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
37 [報告]
發(fā)表于 2015-07-07 14:26 |只看該作者
回復 36# yulihua49

TMP是指template meta-programming

C++的問題就是完全不能做反射,當然反射其實也不一定完全是運行時的東西,比如說Rust里的serialization就會在編譯過程中給需要支持序列號反序列化的struct自動按照成員生成展開的代碼,比如:

  1. #[derive(Decodable, Encodable)]
  2. struct S{
  3.     a: u32,
  4.     b: double
  5. }
復制代碼
Rust會遍歷這個S,對a和b分別生成read_struct_field/emit_struct_field,結果就是Rust在編譯器解決了絕大多數(shù)反射所需的功能,并且生成了一些代碼讓運行期反射也可用,同時沒有Java通過反射進行動態(tài)調(diào)用的開銷。

Clang可以做compiler plugin,也許可以拿來實現(xiàn)類似的功能,我這兩天正在看。

論壇徽章:
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年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發(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
38 [報告]
發(fā)表于 2015-07-07 19:58 |只看該作者
本帖最后由 yulihua49 于 2015-07-09 21:15 編輯
windoze 發(fā)表于 2015-07-07 14:26
回復 36# yulihua49

TMP是指template meta-programming

類似的東西,有個RTMI?
還有個XDR,但是都不能做SRM。
所以,這個輪子,不能不造。
現(xiàn)在,不管訪問什么數(shù)據(jù)庫,我一律SRM,決不再用OCI,PRO*C,CLI  什么的。

http://www.72891.cn/thread-4153426-1-1.html

論壇徽章:
2
水瓶座
日期:2014-06-12 08:22:39IT運維版塊每日發(fā)帖之星
日期:2015-08-05 06:20:00
39 [報告]
發(fā)表于 2015-07-11 15:25 |只看該作者
1、你是否完整的了解過C++98: 2003 標準下的STL設計和實現(xiàn),并且對你產(chǎn)生了怎么樣的影響?
           說實話,這個沒有完整的了解過,以前在做windows驅(qū)動開發(fā)的時候有過研究,但是現(xiàn)在大部分工作已經(jīng)是Linux的底層驅(qū)動了,對于C++現(xiàn)在只有在周末時候才有研究,不過現(xiàn)在缺少這類書籍。對我的影響:現(xiàn)在在項目設計的時候自己經(jīng)常會使用泛型實現(xiàn)最為常用的容器,迭代器,和算法。容器為你可以拼命加入同類對象而不必關心其容量大小的東西,除非內(nèi)存空間已用完,它會自動為你調(diào)整空間,使你從底層細節(jié)的苦海脫離岀來,用更多的精力去創(chuàng)造更為實用的東西,迭代器為容器的索引,類似語言所定義的指針,然而這東西并不是指針,明顯地說,它是精心設計的與各種容器相匹配的眾多類的某個類的對象,簡單說它是一個類對象,對其進行自增與自減操作與指針的不同是它返回的是邏輯上相連的元素的索引,元素對象可能分散在不同的物理空間,而對指針進行同樣的操作只是簡單地向前或后移動對象大小個字節(jié)的物理地址,并且你沒有方法去檢測你指針的索引已經(jīng)脫離對象隊列,因此更易產(chǎn)生致命錯誤。給我們提拱相同算法使用的靈活性。

2、你是否認同在開發(fā)同應該盡量使用STL,而不是自信的經(jīng)常重復造輪子?
           我個人比較認同應該盡量使用STL。因為經(jīng)常重復造輪子,這在工作之中,雖然這個更快,但是代碼的健壯性和可閱讀性不好。而且這個的代碼的時間和空間復雜度有會有影響,對于實時操作系統(tǒng)會有影響。

3、你對C++11標準下的STL有什么樣的期望,新的STL特性目前有使用嗎?
          對于新的STL的期望,能夠出一些實用簡單的類庫,方便外部調(diào)用,還有容器能夠簡化。新的STL特性目前有使用過的。這個有研究過的,自己去試驗學習的時候使用過。。
        
4、對你來講STL還有哪些是急需改進的地方。
      一些臃腫不實用的一些類剔除掉,另外將STL是編譯器實現(xiàn)速度加快。。

5、對于STL的未來你的預期是什么樣的?
     期待一些實用的STL進入C++標準,另外STL也可以繼續(xù)擴展范圍,涵蓋更多常用的功能,比如file system,函數(shù)調(diào)用、增強并行處理功能之類。

論壇徽章:
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年亞冠紀念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設計版塊每日發(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
40 [報告]
發(fā)表于 2015-07-11 15:36 |只看該作者
本帖最后由 yulihua49 于 2015-07-11 15:38 編輯
陌路巨額投入 發(fā)表于 2015-07-11 15:25
1、你是否完整的了解過C++98: 2003 標準下的STL設計和實現(xiàn),并且對你產(chǎn)生了怎么樣的影響?
           說實 ...對于STL的未來你的預期是什么樣的?
     期待一些實用的STL進入C++標準,另外STL也可以繼續(xù)擴展范圍,涵蓋更多常用的功能,比如file system,函數(shù)調(diào)用、增強并行處理功能之類。


你沒發(fā)現(xiàn)需要涵蓋關系數(shù)據(jù)庫?我感覺這個最需要了。
數(shù)據(jù)庫泛型。
還有就是序列化/反序列化的工作。
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP