-
C++ Standards Support in GCC, https://gcc.gnu.org/projects/cxx-status.html
-
C++11 wiki: https://en.wikipedia.org/wiki/C%2B%2B11
-
Bjarne Stroustrup's C++ Style and Technique FAQ, http://www.stroustrup.com/bs_faq2.html
-
a paper: C++ lambda expressions and closures, 2010, https://core.ac.uk/download/pdf/82307163.pdf
- things to take away: (1) inside a const member function, we can change the value of a member reference or a member
pointer! It is the value not the boundness that we can change! (2) capture by copy and capture by reference; there
is no capture by pointer; (3) the semantic model of a lambda function, i.e., how it can be translated to a equivalent class.
(4) the usage of
mutable
for a lambda function. (5) avoid dangled references.
- things to take away: (1) inside a const member function, we can change the value of a member reference or a member
pointer! It is the value not the boundness that we can change! (2) capture by copy and capture by reference; there
is no capture by pointer; (3) the semantic model of a lambda function, i.e., how it can be translated to a equivalent class.
(4) the usage of
-
Lambda expressions and closures for C++, http://www.stroustrup.com/N1968-lambda-expressions.pdf
-
Lambda expressions and closures for C++ (Revision 1), http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2329.pdf
-
Deducing the type of variable from its initializer expression (revision 4), http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
-
a paper: Variadic Templates for C++0x, http://www.jot.fm/issues/issue_2008_02/article2.pdf
-
Variadic Templates (Revision 3), http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2006/n2080.pdf
-
A Brief Introduction to Variadic Templates, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2087.pdf
-
a book: 深入理解C++11 :C++11 新特性解析与应用,https://github.com/xiaoweihan/Books/blob/master/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3C%2B%2B11%EF%BC%9AC%2B%2B11%E6%96%B0%E7%89%B9%E6%80%A7%E8%A7%A3%E6%9E%90%E4%B8%8E%E5%BA%94%E7%94%A8.pdf
-
Apache C++ Standard Library User's Guide (in C++98), http://stdcxx.apache.org/doc/stdlibug/noframes.html
- Digit Separators, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3499.html
- Painless Digit Separation, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3448.pdf
- Single-Quotation-Mark as a Digit Separator, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf
- https://en.cppreference.com/w/cpp/thread/mutex
- gcc source code: https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/a00945_source.html
std::lock_guard
https://en.cppreference.com/w/cpp/thread/lock_guard
- https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01404.html
- https://en.cppreference.com/w/cpp/memory/unique_ptr
- Chapter 38. Boost.StaticAssert, https://www.boost.org/doc/libs/1_69_0/doc/html/boost_staticassert.html
- Proposal to Add Static Assertions to the Core Language, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1381.htm
- Explicit Virtual Overrides, http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
- https://en.cppreference.com/w/cpp/language/parameter_pack
- an example in MACE: https://github.com/XiaoMi/mace/blob/aca4c5e2a3496cca955d45460eb976fe765d6f14/mace/utils/string_util.h#L25
- how is
std::function<>
implemented. - A polymorphic class should suppress copying, https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c67-a-polymorphic-class-should-suppress-copying
- incorrect usage of
auto
results in slicing.
- Technical Report on C++ Performance, http://www.open-std.org/jtc1/sc22/open/n3646.pdf