Difference between revisions of "CPlusPlus"
From Lost In Wonderlands
(→Books) |
(→C++ Testing) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 67: | Line 67: | ||
==== [https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization RAII, Resource Acquisition is initialization Pattern] ==== | ==== [https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization RAII, Resource Acquisition is initialization Pattern] ==== | ||
* [https://www.moderncplusplus.com/category/raii/ RAII and exceptions] | * [https://www.moderncplusplus.com/category/raii/ RAII and exceptions] | ||
+ | |||
+ | ==== Perfect Forwarding C++ Patterns ==== | ||
+ | * https://cpppatterns.com/patterns/perfect-forwarding.html | ||
+ | |||
+ | ==== Swap Values C++ Pattern ==== | ||
+ | * https://cpppatterns.com/patterns/swap-values.html | ||
+ | |||
+ | ==== more C++ Patterns ==== | ||
+ | * https://cpppatterns.com | ||
==== Exceptions ==== | ==== Exceptions ==== | ||
Line 233: | Line 242: | ||
* https://en.wikipedia.org/wiki/Google_Test | * https://en.wikipedia.org/wiki/Google_Test | ||
* https://github.com/google/googletest | * https://github.com/google/googletest | ||
+ | |||
+ | |||
+ | [[boost test]] | ||
+ | * https://www.boost.org/doc/libs/1_70_0/libs/test/doc/html/index.html | ||
+ | |||
+ | [[Catch2]] | ||
+ | *https://github.com/catchorg/Catch2 | ||
+ | |||
+ | == Improving your C++ == | ||
+ | * https://www.acodersjourney.com/top-10-c-header-file-mistakes-and-how-to-fix-them/ | ||
+ | * https://www.acodersjourney.com/6-tips-supercharge-cpp-11-vector-performance/ | ||
+ | https://www.acodersjourney.com/boost-c11-vector-performance/ | ||
+ | * https://www.acodersjourney.com/c-11-auto/ | ||
+ | * https://www.acodersjourney.com/top-10-dumb-mistakes-avoid-c-11-smart-pointers/ | ||
+ | * https://www.acodersjourney.com/top-15-c-exception-handling-mistakes-avoid/ | ||
+ | * https://www.acodersjourney.com/top-20-c-pointer-mistakes/ | ||
+ | * https://www.acodersjourney.com/top-20-cplusplus-multithreading-mistakes/ | ||
+ | * https://www.acodersjourney.com/insertion-sort/ | ||
+ | * https://www.acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/ | ||
+ | |||
+ | |||
+ | * http://www.hlsl.co.uk/blog/2017/12/1/c-noexcept-and-move-constructors-effect-on-performance-in-stl-containers | ||
== FAQ == | == FAQ == | ||
Line 270: | Line 301: | ||
* [http://www.cplusplus.com/ cplusplus.com] | * [http://www.cplusplus.com/ cplusplus.com] | ||
* [http://en.cppreference.com/w/ cppReferences] | * [http://en.cppreference.com/w/ cppReferences] | ||
+ | * [https://www.acodersjourney.com/ a coders journey] | ||
* [https://www.geeksforgeeks.org/ geeks for geeks] | * [https://www.geeksforgeeks.org/ geeks for geeks] | ||
* [https://codescracker.com/index.htm codescracker] | * [https://codescracker.com/index.htm codescracker] | ||
Line 334: | Line 366: | ||
== Books == | == Books == | ||
* [https://www.wiley.com/en-us/Professional+C%2B%2B%2C+4th+Edition-p-9781119421306 Professional C++, Marc Gregroire, 4ieme Edition] | * [https://www.wiley.com/en-us/Professional+C%2B%2B%2C+4th+Edition-p-9781119421306 Professional C++, Marc Gregroire, 4ieme Edition] | ||
− | * [https://www.amazon.fr/17-Quick-Syntax-Reference-Language/dp/1484235991/ref=sr_1_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=syntax+C%2B%2B17&qid=1565180628&s=english-books&sr=1- | + | * [https://www.amazon.fr/17-Quick-Syntax-Reference-Language/dp/1484235991/ref=sr_1_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=syntax+C%2B%2B17&qid=1565180628&s=english-books&sr=1-1 C++17 Quick Syntax Reference, Mikael Olsson, APress] |
− | * [ | + | * [http://www.allitebooks.org/c17-standard-library-quick-reference-2nd-edition/ C++17 Standard Library Quick Reference, , Peter Van Weert, Marc Gregroire, Apress] |
− | * [ | + | * [http://www.allitebooks.org/safe-c/ Safe c++] |
− | * [ | + | * [http://www.allitebooks.org/optimized-c/ Optimized C++] |
* [http://www.allitebooks.com/clean-c/ Clean c++] | * [http://www.allitebooks.com/clean-c/ Clean c++] | ||
* [https://www.amazon.fr/High-Performance-Boost-optimize-performance/dp/1787120953/ref=sr_1_3?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=C%2B%2B17&qid=1565180548&s=english-books&sr=1-3 C++ High Performance: Boost and optimize the performance of your C++17 code, Viktor Sehr, Bjorn Andrist, Packt] | * [https://www.amazon.fr/High-Performance-Boost-optimize-performance/dp/1787120953/ref=sr_1_3?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=C%2B%2B17&qid=1565180548&s=english-books&sr=1-3 C++ High Performance: Boost and optimize the performance of your C++17 code, Viktor Sehr, Bjorn Andrist, Packt] | ||
* [http://www.allitebooks.com/beginning-c17-5th-edition/ beginning c++17-5th-edition] | * [http://www.allitebooks.com/beginning-c17-5th-edition/ beginning c++17-5th-edition] | ||
+ | * Effective Modern C++ | ||
* Effective C++ | * Effective C++ | ||
* More Effective c++ | * More Effective c++ | ||
* [https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996 Effective Modern C++] | * [https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996 Effective Modern C++] | ||
* [https://www.artima.com/shop/effective_cpp_in_an_embedded_environment effective_cpp_in_an_embedded_environment] | * [https://www.artima.com/shop/effective_cpp_in_an_embedded_environment effective_cpp_in_an_embedded_environment] | ||
− | |||
* Exceptional C++ | * Exceptional C++ | ||
− | * More | + | * More Exceptional C++ |
− | + | ||
* Modern C++ | * Modern C++ | ||
− | * | + | * [http://www.allitebooks.org/exploring-c-11-2nd-edition/ Exploring c++11] |
* [https://nostarch.com/cppcrashcourse c++ crash course (no starch press)] | * [https://nostarch.com/cppcrashcourse c++ crash course (no starch press)] | ||
* [http://www.allitebooks.com/c-concurrency-in-action-2nd-edition/ c++ concurrency in action-2nd-edition] | * [http://www.allitebooks.com/c-concurrency-in-action-2nd-edition/ c++ concurrency in action-2nd-edition] |
Latest revision as of 13:15, 22 March 2021
Contents
- 1 C++ programming Language
- 1.1 See also
- 1.2 C++
- 1.2.1 C++ Topics
- 1.2.1.1 Cpp Acronisms
- 1.2.1.2 Fluent Cpp Topics
- 1.2.1.3 auto
- 1.2.1.4 Ranges
- 1.2.1.5 SmartPointers
- 1.2.1.6 RAII, Resource Acquisition is initialization Pattern
- 1.2.1.7 Perfect Forwarding C++ Patterns
- 1.2.1.8 Swap Values C++ Pattern
- 1.2.1.9 more C++ Patterns
- 1.2.1.10 Exceptions
- 1.2.1.11 curried Objects
- 1.2.1.12 C++ templates
- 1.2.1.13 C++ traits
- 1.2.1.14 C++ type Casting
- 1.2.1.15 Learning STL
- 1.2.1.16 Ranges in C++ and STL
- 1.2.1.17 Maker functions in STL
- 1.2.1.18 More C++ Idoms
- 1.2.2 Boost
- 1.2.3 C++ API Design
- 1.2.4 C++ Evolutions
- 1.2.5 C++ Coding Styles
- 1.2.5.1 Iso C++ Coding Style
- 1.2.5.2 https://github.com/isocpp/CppCoreGuidelines Iso C++ Coding Style on Github ]
- 1.2.5.3 C++ Coding Style on Github
- 1.2.5.4 coding-standards
- 1.2.5.5 c++ coding styles by Bjarne and Herb
- 1.2.5.6 Mozilla C++ Coding Style
- 1.2.5.7 Google C++ Coding style
- 1.2.5.8 high-integrity-cpp-coding-standard
- 1.2.6 C++ Portability
- 1.2.7 C++ Testing
- 1.2.1 C++ Topics
- 1.3 Improving your C++
- 1.4 FAQ
- 1.5 Tools
- 1.6 Articles
- 1.7 blogs
- 1.8 Libraries
- 1.9 source code
- 1.10 tutorials
- 1.11 Books
C++ programming Language
See also
C++
- http://www.cplusplus.com/
- https://en.wikipedia.org/wiki/C%2B%2B
- http://www.open-std.org/jtc1/sc22/wg21/
- https://isocpp.org/get-started
- C and C++ compatibility, https://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B
C++ Builder
C++ Standard Library
C++ Topics
Cpp Acronisms
Fluent Cpp Topics
auto
Ranges
SmartPointers
- auto_ptr, deprecated since c++11, it was replaced by unique ptr
- smart-pointers-modern-cpp
- boost smart pointers
RAII, Resource Acquisition is initialization Pattern
Perfect Forwarding C++ Patterns
Swap Values C++ Pattern
more C++ Patterns
Exceptions
- multiple-error-handling-with-the-optional-monad-in-c
- Why doesn't C++ provide a "finally" construct?
- cppreferences
- https://en.cppreference.com/w/cpp/language/exceptions
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-1
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-2
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-3
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-4
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-5
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-6
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-7
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-8
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-9
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-10
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-11
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-12
- https://en.cppreference.com/w/cpp/language/exceptions#cite_ref-13
- isocpp.org
- boost
- stdlib
- DrDobb's
- microsoft
- welcome-back-to-cpp-modern-cpp
- try-throw-and-catch-statements-cpp
- errors-and-exception-handling-modern-cp?
- how-to-design-for-exception-safety
- thread-safety-in-the-cpp-standard-library
- exceptions-and-stack-unwinding-in-cpp
- how-to-interface-between-exceptional-and-non-exceptional-code
- lambda-expressions-in-cpp
- exception-class
- stdexcept
- cpp-language-reference
- cpp-standard-library-reference
curried Objects
C++ templates
C++ traits
C++ type Casting
- https://en.wikipedia.org/wiki/Type_conversion
- https://en.wikipedia.org/wiki/Static_cast
- https://en.wikipedia.org/wiki/Type_punning
- https://fr.wikipedia.org/wiki/Dynamic_cast
- https://openclassrooms.com/courses/c-les-conversions-de-types
- https://stackoverflow.com/questions/28002/regular-cast-vs-static-cast-vs-dynamic-cast
Qt Type Casting
Learning STL
Ranges in C++ and STL
- [https://www.fluentcpp.com/2018/04/13/moving-ranges-stl/ moving-ranges-stl}
- the-difference-between-stdcopy_backward-and-stdcopy-with-reverse-iterators
- inserting-several-elements-into-an-stl-container
- how-to-split-a-string-in-c
Maker functions in STL
- make_ functiona re facility stl foos
- https://docs.microsoft.com/en-us/cpp/standard-library/memory-functions?view=vs-2019#make_unique
- make_unique
- make_shared
More C++ Idoms
- https://en.wikibooks.org/wiki/More_C++_Idioms
- https://herbsutter.com/elements-of-modern-c-style/
- https://cpptruths.blogspot.com/2007/08/new-book-on-c-idioms.html
Boost
C++ API Design
Qt API Design
C++ Evolutions
Support in compilers
Static code analyzer tools
- integrated in Visual Studio C++
- clang power tools for visual studio
- Clang in xCode
- http://cppcheck.net/
ISOCPP
C++ 03
C++ 11
C++ 14
C++ 17
- https://en.wikipedia.org/wiki/C%2B%2B17
- [ https://www.cppindetail.com c++ in details]
C++ 20
C++ Coding Styles
Iso C++ Coding Style
https://github.com/isocpp/CppCoreGuidelines Iso C++ Coding Style on Github ]
C++ Coding Style on Github
coding-standards
c++ coding styles by Bjarne and Herb
Mozilla C++ Coding Style
Google C++ Coding style
high-integrity-cpp-coding-standard
C++ Portability
Using_CXX_in_Mozilla_code
C++ Testing
- https://en.wikipedia.org/wiki/CppUnit
- https://sourceforge.net/projects/cppunit/
- https://freedesktop.org/wiki/Software/cppunit/
- https://freedesktop.org/wiki/Software/cppunit/
Improving your C++
- https://www.acodersjourney.com/top-10-c-header-file-mistakes-and-how-to-fix-them/
- https://www.acodersjourney.com/6-tips-supercharge-cpp-11-vector-performance/
https://www.acodersjourney.com/boost-c11-vector-performance/
- https://www.acodersjourney.com/c-11-auto/
- https://www.acodersjourney.com/top-10-dumb-mistakes-avoid-c-11-smart-pointers/
- https://www.acodersjourney.com/top-15-c-exception-handling-mistakes-avoid/
- https://www.acodersjourney.com/top-20-c-pointer-mistakes/
- https://www.acodersjourney.com/top-20-cplusplus-multithreading-mistakes/
- https://www.acodersjourney.com/insertion-sort/
- https://www.acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/
FAQ
Tools
Others
- C Reduce
compilers
IDE
- https://www.jetbrains.com/cpp/?gclid=CJblnPaN0dQCFcEp0wod50IDwA&gclsrc=aw.ds.ds&dclid=CIr4_faN0dQCFZc-GwodAhYCWg
- http://www.codeblocks.org
- https://www.kdevelop.org
- https://www.monodevelop.com
- https://visualstudio.microsoft.com/fr/
- https://developer.apple.com/xcode/
on line compilers
- C++ Shell, http://www.cpp.sh
- Compiler explorer, https://godbolt.org/z/e_Wfrd
Articles
blogs
- isocpp
- cplusplus.com
- cppReferences
- a coders journey
- geeks for geeks
- codescracker
- [ http://www.cppforschool.com/projects.html cpp for school]
- Meeting C++, a news site on C++ , new specifications
- cpp optimizing with static analysis tools
- C++, Qt, OpenGL, CUDA
- cppcast john-regehr
- Simplify C++
- comp.lang.c++
- cpp_questions
- Vorbrodt's C++ Blog
- Scott Meyer blog
- 11 free resources for learning c++ programming
- philippegroarke solutions
- accu.org
- solarian programmers' blog
Libraries
source code
Gang Of Four Patterns
Several implementation of Above design patterns in C++
- https://github.com/BartVandewoestyne/Design-Patterns-GoF
- https://github.com/zebmason/GoFRefactored/blob/master/README.md
- http://www.informit.com/articles/article.aspx?p=1404056
- https://www.infoq.com/presentations/gof-patterns-c-plus-plus-boost/
- http://www.c-jump.com/CIS75/Week11/
- http://www.c-jump.com/Download/Patterns/Prototype/html/
- https://github.com/wangqiang8511/C---Design-Patterns-Examples/
- https://cpppatterns.com/
modern C++
- github search, https://github.com/search?q=modern+c%2B%2B
- JSON, https://github.com/nlohmann/json/releases/tag/v3.6.0
tutorials
- http://www.tutswing.com/cplusplus-home
- http://www.dreamincode.net/forums/forum/48-c-tutorials/
- https://cplusplus.awesome-programming.com/en/awesome/cplusplus-04/tutorial
- http://www.cppforschool.com/projects.html
- https://www.programiz.com/cpp-programming/examples
awesome-programming.com
- https://cplusplus.awesome-programming.com/en/awesome/cplusplus-03/course
- https://cplusplus.awesome-programming.com/en/awesome/cplusplus-04/tutorial
- https://cplusplus.awesome-programming.com/en/awesome/cplusplus-02/community
- https://cplusplus.awesome-programming.com/en/awesome/cplusplus-05/youtube
Books
- Professional C++, Marc Gregroire, 4ieme Edition
- C++17 Quick Syntax Reference, Mikael Olsson, APress
- C++17 Standard Library Quick Reference, , Peter Van Weert, Marc Gregroire, Apress
- Safe c++
- Optimized C++
- Clean c++
- C++ High Performance: Boost and optimize the performance of your C++17 code, Viktor Sehr, Bjorn Andrist, Packt
- beginning c++17-5th-edition
- Effective Modern C++
- Effective C++
- More Effective c++
- Effective Modern C++
- effective_cpp_in_an_embedded_environment
- Exceptional C++
- More Exceptional C++
- Modern C++
- Exploring c++11
- c++ crash course (no starch press)
- c++ concurrency in action-2nd-edition
- modern c programming with test driven development
- exploring c++
- options-and-derivatives-programming-in-c++