有什麼高質量的現代C++風格的開源代碼?
RT想學習學習:)
boost
google的leveldb
leveldb -
A fast and lightweight key/value database library by Google.
我覺得這個還是不錯的:https://github.com/facebook/folly跟其他的一些project不同,這裡面包含的都是一些基礎的庫,運用了不少C++11的特性。當然裡面有些奇技淫巧,比如重載指針操作符實現互斥之類的...
不過總的來說,FB開源出來的東西,應該是值得一讀的。
Qt
謝邀。
推薦以下兩個有 50% 左右的源碼是 C++ 的開源代碼,非常值得學習的兩個。
https://github.com/tensorflow/tensorflow
https://github.com/apple/swift
- @陳碩 的Muduo
- POCO (http://pocoproject.org/)
- ...
Google v8 engine
我模仿的是.net framework的做法,依稀記得有一本專門講如何用.net寫framework的《Framework Design Guidelines》提到了所有的內容(看向 @趙劼
tinymoe則完全是用C++11來寫的 vczh/tinymoe 路 GitHub
clang/llvm
C++14標準都出來了,連C++11的特性都沒用的項目就別好意思說現代C++了吧推薦微軟的開源跨平台項目:casablancaC++ REST SDK功能:HTTP client/server, JSON, URI, asynchronous streams, WebSockets client, oAuth例子:
pplx::task&
{
http_client client(L"http://www.fourthcoffee.com");
// Make the request and asynchronously process the response.
return client.request(methods::GET).then([](http_response response)
{
// Print the status code.
std::wostringstream ss;
ss &<&< L"Server returned returned status code " &<&< response.status_code() &<&< L. &<&< std::endl;
std::wcout &<&< ss.str();
// TODO: Perform actions here reading from the response stream.
auto bodyStream = response.body();
// In this example, we print the length of the response to the console.
ss.str(std::wstring());
ss &<&< L"Content length is " &<&< response.headers().content_length() &<&< L" bytes." &<&< std::endl;
std::wcout &<&< ss.str();
});
/* Sample output:
Server returned returned status code 200.
Content length is 63803 bytes.
*/
}
實現並發就是這麼優雅
chromium. 裡面包含了一個大大的基礎庫base,網路庫net,以及樓上說的v8,還有google自己實現的正則RE2,還有webkit等一大坨3rd party的開源代碼.
stl,雖然不知道夠不夠現代。
openfoam,如果是搞流體的,很值得學
電驢,Mongodb,webkit內核也是C++寫的
mongodb
Ubuntu Mir
skia,firefox,chromium
google代碼規範有必要讀讀了,至於應用這套規範得如前面提到的chroium及大部分google開源項目,自行google之
推薦閱讀:
※如何在 GitHub 看源代碼學習呢?
※要讀別人的代碼,應該如何入手?
※如何優雅的管理 github 上 star 的項目?
※如何看待大學CS課程中普遍存在的GOP(Github Oriented Programming)現象?
※GitHub入門與實踐