CRTP,奇特的遞歸模板模式 (Curiously Recurring Template Pattern) 是 C++ 的一種看起來很怪異的模板編程技巧。 它通過繼承和模板的聯合應用,實現了一種"看似"繼承自己的語法。這種編程的技法,無論是在STL還是Boost之中都被大量使用。像它的名字 ...
之前因為都在忙着畢業的開題答辯與投稿論文的事宜,一直沒有時間更新這個系列的文章。師弟看了上一篇霧中風景的文章,希望我繼續把這個系列的文章寫下去。坦白說,C 的特性很多,這也不是教學指南的文章,我會選取一些自己在學習C 過程之中值得探討的問題和大家聊一聊,來拋磚引玉。好的,今天先放點開胃菜,和大家聊聊strcut與class關鍵字。 .struct關鍵字: 在C 語言作為C語言的一個超集,但是並不 ...
2017-11-12 04:09 0 1090 推薦指數:
CRTP,奇特的遞歸模板模式 (Curiously Recurring Template Pattern) 是 C++ 的一種看起來很怪異的模板編程技巧。 它通過繼承和模板的聯合應用,實現了一種"看似"繼承自己的語法。這種編程的技法,無論是在STL還是Boost之中都被大量使用。像它的名字 ...
可以幫助我們在開發階段就發現錯誤,並且保證新的修改沒有破壞已有的程序邏輯。 在 C++之中,常用的測試 ...
寫 C++的同學想必有太多和內存打交道的血淚經驗了,常常被 C++的內存問題攪的焦頭爛額。(寫 core 的經驗了)有很多同學一見到 core 就兩眼一抹黑,不知所措了。筆者 入"坑"C++之后,在調試 C++代碼的過程之中,學習了不少調試代碼內存的工具。希望借這個機會來介紹一下筆者常用 ...
C++11的版本在vector容器添加了emplace_back方法,相對於原先的push_back方法能夠在一定程度上提升vector容器的表現性能。所以我們從STL源碼角度來切入,看看這兩種方法有什么樣的區別,新引進的方法又有什么可學習參考之處。 1.emplace_back的用法 ...
C++11的版本在類型系統上下了很大的功夫,添加了諸如auto,decltype,move等新的關鍵詞來簡化代碼的編寫與降低閱讀代碼的難度。為了更好的理解這些新的語義,筆者確定通過幾篇文章來簡單窺探一下C++類型系統的冰山一角,如果加深了對C++類型系統的理解,想必大家也能夠更好的應用 ...
乍一看這個標題很玄乎,但是其實這只是涉及一個很簡單的CPP的模板推導的知識點。 筆者近期進行CPP開發工作時,在編譯時遇到了如下的模板類型的推斷錯誤:note: candidate templa ...
Name Mangling,直接翻譯過來為名字改寫 。它是深入理解 C++ 編譯鏈接模型的必由之路。 筆者近期進行數據庫開發工作時,涉及到MySQL客戶端的編譯鏈接的問題,通過重新厘清了之前理解一知半解的Name Manging,解決了讓人抓狂的編譯鏈接問題。 接下來,和大家聊聊C++ ...
筆者近期在工作之中編程實現一個Cache結構的封裝,需要使用到C++之中的互斥量Mutex,於是花了一些時間進行了調研。(結果對C++標准庫很是絕望....)最終還是通過利用了Boost庫的shared_mutex解決了問題。借這個機會來聊聊在C++之中的多線程編程的一些“坑 ...