Difference between revisions of "CPlusPlus"

From Lost In Wonderlands
Jump to: navigation, search
(Exceptions)
(C++ Testing)
 
(43 intermediate revisions by the same user not shown)
Line 22: Line 22:
 
* https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_standard_du_C%2B%2B
 
* https://fr.wikipedia.org/wiki/Biblioth%C3%A8que_standard_du_C%2B%2B
 
=== C++ Topics ===
 
=== C++ Topics ===
 +
 
* [http://thbecker.net/articles/rvalue_references/section_01.html rValue]
 
* [http://thbecker.net/articles/rvalue_references/section_01.html rValue]
 
* [https://accu.org/index.php/journals/227 lValue and rValue]
 
* [https://accu.org/index.php/journals/227 lValue and rValue]
Line 28: Line 29:
 
* [https://boost-experimental.github.io/sml/cppnow-2019/#/ StateMachine]
 
* [https://boost-experimental.github.io/sml/cppnow-2019/#/ StateMachine]
 
* [https://www.moderncplusplus.com/why-you-should-always-use-a-virtual-destructor/ why-you-should-always-use-a-virtual-destructor]
 
* [https://www.moderncplusplus.com/why-you-should-always-use-a-virtual-destructor/ why-you-should-always-use-a-virtual-destructor]
 +
 +
====Cpp Acronisms ====
 +
* [https://quuxplusone.github.io/blog/2019/08/02/the-tough-guide-to-cpp-acronyms/ list of acronyms ]
 +
* [https://en.cppreference.com/w/cpp/language/acronyms cppreference acronyms]
  
 
==== [https://www.fluentcpp.com/posts/ Fluent Cpp Topics] ====
 
==== [https://www.fluentcpp.com/posts/ Fluent Cpp Topics] ====
 +
 +
==== auto ====
 +
* [https://docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=vs-2019$ auto in modern C++]
 +
* [https://stackoverflow.com/questions/16949016/how-to-declare-array-with-auto  how-to-declare-array-with-auto]
 +
 +
==== Ranges ====
 +
* [https://docs.microsoft.com/en-us/cpp/cpp/range-based-for-statement-cpp?view=vs-2019 Range-based for Statement (C++)]
 +
* [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0184r0.html range based statement for loops]
 +
* [https://github.com/ericniebler/range-v3 a range library v3]
  
 
==== SmartPointers ====
 
==== SmartPointers ====
Line 53: 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 88: Line 111:
 
* DrDobb's
 
* DrDobb's
 
** [http://www.drdobbs.com/when-and-how-to-use-exceptions/184401836 Herb answers the question, "When, for what, and how should you use exceptions?]
 
** [http://www.drdobbs.com/when-and-how-to-use-exceptions/184401836 Herb answers the question, "When, for what, and how should you use exceptions?]
 +
*microsoft
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=vs-2019 welcome-back-to-cpp-modern-cpp]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/try-throw-and-catch-statements-cpp?view=vs-2019 try-throw-and-catch-statements-cpp]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/errors-and-exception-handling-modern-cpp?view=vs-2019  errors-and-exception-handling-modern-cp?]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/how-to-design-for-exception-safety?view=vs-2019 how-to-design-for-exception-safety]
 +
** [https://docs.microsoft.com/en-us/cpp/standard-library/thread-safety-in-the-cpp-standard-library?view=vs-2019 thread-safety-in-the-cpp-standard-library]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/exceptions-and-stack-unwinding-in-cpp?view=vs-2019 exceptions-and-stack-unwinding-in-cpp]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/how-to-interface-between-exceptional-and-non-exceptional-code?view=vs-2019 how-to-interface-between-exceptional-and-non-exceptional-code]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/lambda-expressions-in-cpp?view=vs-2019 lambda-expressions-in-cpp]
 +
** [https://docs.microsoft.com/en-us/cpp/standard-library/exception-class?view=vs-2019 exception-class]
 +
** [https://docs.microsoft.com/en-us/cpp/standard-library/stdexcept?view=vs-2019 stdexcept]
 +
** [https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference?view=vs-2019 cpp-language-reference]
 +
** [https://docs.microsoft.com/en-us/cpp/standard-library/cpp-standard-library-reference?view=vs-2019 cpp-standard-library-reference]
 +
 +
==== curried Objects ====
 +
* [https://www.fluentcpp.com/2019/05/03/curried-objects-in-cpp/ curried-objects-in-cpp]
 +
* [http://www.laputan.org/pub/patterns/noble/noble.pdf curried objects]
 +
 +
==== C++ templates ====
 +
* https://www.geeksforgeeks.org/templates-cpp/
  
 
==== C++ traits ====
 
==== C++ traits ====
Line 121: Line 164:
 
* [https://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique make_unique]
 
* [https://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique make_unique]
 
* [https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared make_shared]
 
* [https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared 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 ===
 
=== Boost ===
Line 140: Line 189:
 
* [http://clang.llvm.org/cxx_status.html support in Clang]
 
* [http://clang.llvm.org/cxx_status.html support in Clang]
 
* [https://docs.microsoft.com/fr-fr/cpp/overview/visual-cpp-language-conformance?view=vs-2019 support in Visual C++]
 
* [https://docs.microsoft.com/fr-fr/cpp/overview/visual-cpp-language-conformance?view=vs-2019 support in Visual C++]
 +
 +
==== Static code analyzer tools ====
 +
* integrated in Visual Studio C++
 +
* clang power tools for visual studio
 +
** [https://marketplace.visualstudio.com/items?itemName=caphyon.ClangPowerTools ClangPowerTools]
 +
* Clang in xCode
 +
* http://cppcheck.net/
  
 
====ISOCPP====
 
====ISOCPP====
Line 149: Line 205:
 
====C++ 11====
 
====C++ 11====
 
* https://fr.wikipedia.org/wiki/C%2B%2B11
 
* https://fr.wikipedia.org/wiki/C%2B%2B11
 +
*https://herbsutter.com/elements-of-modern-c-style/
  
 
====C++ 14====
 
====C++ 14====
Line 157: Line 214:
 
* [ https://www.cppindetail.com c++ in details]
 
* [ https://www.cppindetail.com c++ in details]
  
====C++20====
+
====C++ 20====
 
* https://en.wikipedia.org/wiki/C%2B%2B20
 
* https://en.wikipedia.org/wiki/C%2B%2B20
  
Line 185: 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 ==
 
* [https://isocpp.org/faq isocpp FAQ]
 
* [https://isocpp.org/faq isocpp FAQ]
 +
* [https://www.toptal.com/c-plus-plus/top-10-common-c-plus-plus-developer-mistakes common c++ mistakes]
  
 
== Tools ==
 
== Tools ==
Line 212: Line 292:
 
=== on line compilers ===
 
=== on line compilers ===
 
* C++ Shell, http://www.cpp.sh
 
* C++ Shell, http://www.cpp.sh
 +
* Compiler explorer, https://godbolt.org/z/e_Wfrd
 +
 +
== Articles ==
 +
* [https://weblog.rogueamoeba.com/2008/07/14/the-clang-static-analyzer/ the-clang-static-analyzer]
  
 
== blogs ==
 
== blogs ==
 
* [https://isocpp.org/get-started isocpp]
 
* [https://isocpp.org/get-started isocpp]
* [http://meetingcpp.com/index.php/books.html Meeting C++, a news site on C++ , new specifications]
+
* [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://codescracker.com/index.htm codescracker]
 +
* [ http://www.cppforschool.com/projects.html cpp for school]
 +
* [http://meetingcpp.com/index.php/books.html Meeting C++, a news site on C++ , new specifications]
 
* [http://kdab.developpez.com/tutoriels/clazy/cpp-static-analysis/ cpp optimizing with static analysis tools]
 
* [http://kdab.developpez.com/tutoriels/clazy/cpp-static-analysis/ cpp optimizing with static analysis tools]
 
* [http://guillaume.belz.free.fr/doku.php C++, Qt, OpenGL, CUDA]
 
* [http://guillaume.belz.free.fr/doku.php C++, Qt, OpenGL, CUDA]
Line 239: Line 328:
 
** [https://github.com/rigtorp/awesome-modern-cpp awesome cpp github]
 
** [https://github.com/rigtorp/awesome-modern-cpp awesome cpp github]
 
* [https://baptiste-wicht.com/ Baptiste Wicht blog]
 
* [https://baptiste-wicht.com/ Baptiste Wicht blog]
 +
 +
== Libraries ==
 +
* https://en.cppreference.com/w/cpp/links/libs
  
 
== source code ==
 
== source code ==
Line 253: Line 345:
 
* http://www.c-jump.com/Download/Patterns/Prototype/html/
 
* http://www.c-jump.com/Download/Patterns/Prototype/html/
 
* https://github.com/wangqiang8511/C---Design-Patterns-Examples/
 
* https://github.com/wangqiang8511/C---Design-Patterns-Examples/
 +
* https://cpppatterns.com/
  
 
=== modern C++ ===
 
=== modern C++ ===
Line 262: Line 355:
 
* http://www.dreamincode.net/forums/forum/48-c-tutorials/
 
* http://www.dreamincode.net/forums/forum/48-c-tutorials/
 
* https://cplusplus.awesome-programming.com/en/awesome/cplusplus-04/tutorial
 
* 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 ===
 
=== awesome-programming.com ===
Line 270: Line 365:
  
 
== 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.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++]
 +
* [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]
 +
* 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]
* Thinking in C++
 
 
* Exceptional C++
 
* Exceptional C++
* More Exceptionnal C++
+
* More Exceptional C++
* [http://shop.oreilly.com/product/0636920024224.do Safe C++]
+
 
* Modern C++
 
* Modern C++
* Exploring c++11, https://books.google.pl/books?id=jZoQAwAAQBAJ&pg=PA592&lpg=PA592&dq=ICS+C%2B%2B&source=bl&ots=Y6wvPJAdLP&sig=yPgJS3xjnTZAGY7_0wwxFBAyrUI&hl=en&sa=X&ved=0ahUKEwjzjfaM_tDUAhUBYVAKHQkJBCsQ6AEIYjAJ#v=onepage&q=ICS%20C%2B%2B&f=false
+
* [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]
* [http://www.allitebooks.com/beginning-c17-5th-edition/ beginning c++17-5th-edition]
 
* [http://www.allitebooks.com/clean-c/ clean c++]
 
 
* [http://www.allitebooks.com/modern-c-programming-with-test-driven-development/ modern c programming with test driven development]
 
* [http://www.allitebooks.com/modern-c-programming-with-test-driven-development/ modern c programming with test driven development]
 
* [http://www.allitebooks.com/exploring-c/ exploring c++]
 
* [http://www.allitebooks.com/exploring-c/ exploring c++]
 
* [http://www.allitebooks.com/options-and-derivatives-programming-in-c/ options-and-derivatives-programming-in-c++]
 
* [http://www.allitebooks.com/options-and-derivatives-programming-in-c/ options-and-derivatives-programming-in-c++]

Latest revision as of 13:15, 22 March 2021

C++ programming Language

See also

C++



C++ Builder

C++ Standard Library

C++ Topics

Cpp Acronisms

Fluent Cpp Topics

auto

Ranges

SmartPointers




RAII, Resource Acquisition is initialization Pattern

Perfect Forwarding C++ Patterns

Swap Values C++ Pattern

more C++ Patterns

Exceptions

curried Objects

C++ templates

C++ traits

C++ type Casting

Qt Type Casting

Learning STL

Ranges in C++ and STL

Maker functions in STL


More C++ Idoms

Boost


C++ API Design

Qt API Design

C++ Evolutions

Support in compilers

Static code analyzer tools

ISOCPP

C++ 03

C++ 11

C++ 14

C++ 17

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

CppUnit

Google Test


boost test

Catch2

Improving your C++

https://www.acodersjourney.com/boost-c11-vector-performance/


FAQ

Tools

Others

compilers

IDE

on line compilers

Articles

blogs

Libraries

source code

Gang Of Four Patterns

Several implementation of Above design patterns in C++

modern C++

tutorials

awesome-programming.com

Books