Difference between revisions of "CPlusPlus"

From Lost In Wonderlands
Jump to: navigation, search
(Gang Of Four Patterns)
(C++ Testing)
 
(34 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] ====
Line 62: 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 114: Line 128:
 
* [https://www.fluentcpp.com/2019/05/03/curried-objects-in-cpp/ curried-objects-in-cpp]
 
* [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]
 
* [http://www.laputan.org/pub/patterns/noble/noble.pdf curried objects]
 +
 +
==== C++ templates ====
 +
* https://www.geeksforgeeks.org/templates-cpp/
  
 
==== C++ traits ====
 
==== C++ traits ====
Line 147: 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 166: 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 184: 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 212: 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 240: 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 267: 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 291: 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 299: 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