C-Cpp-Notes
C-Cpp-Notes copied to clipboard
Notes about modern C++, C++11, C++14 and C++17, Boost Libraries, ABI, foreign function interface and reference cards.
#+INCLUDE: theme/style.org #+TITLE: CPP C++ Papyrus #+DESCRIPTION: cpp/c++ code examples and demonstrations. #+AUTHOR: Caio Rodrigues Soares - caiorss [DOT] rodrigues [AT] gmail [DOT] COM #+STARTUP: content
-
C++ - CPP ** Quick Access
-
[[file:standard_library_map.org][Standard Library Map]]
-
[[file:STL_Input_and_output.org][Standard Library IO - Input and Output]]
-
[[file:Preprocessor_and_Macros.org][Preprocessor and macros]]
-
[[file:Libraries.org][C and C++ Libraries Bookmarks]]
-
[[file:compiler-flags-options.org][Compiler flags and options]]
-
https://devdocs.io/
- => DevDocs - Quickreference documentation of APIs of multiple programming languages, including, C, C++, Rust, DLang, JavaScript, Java, Typescript. C# (CSharp), GO (Golang),
-
** Core C++
-
[[file:technology_landscape.org][Technology Landscape and Usage of C++]]
-
[[file:Understanding-CPP.org][Understanding C++]] (C++ in-depth)
- Exploring C++ basic and advanced concepts and also modern C++ features with both small and reproducible C++ sample programs and interactive examples taken from the CERN's ROOT/Cling REPL tool.
-
[[file:passing-lambda.org][Passing C++ Lambdas to C function-pointer callbacks]]
-
[[file:standard_library_map.org][Standard Library Map]]
- Hyperlinks to the C++ standard library and C++ ISO standard documentation categorized by common functionality.
-
[[file:STL%20Iterators%20and%20Algorithms.org][STL Iterators and Algorithms]]
-
[[file:STL_Input_and_output.org][Standard Library IO - Input and Output]]
-
[[file:Libraries-and-featuresCPP17.org][C++17 and C++20 - new features and containers]]
-
[[file:CPP-template-metaprogramming.org][Template Metaprogramming]]
- also known as generic programming.
-
[[file:Preprocessor_and_Macros.org][Preprocessor and macros]]
-
[[file:math_and_numerical_computing.org][Math and numerical computing]]
-
[[file:multi-threading.org][Multithreading and concurrency]]
-
[[file:cpp-design-patterns.org][Design Patterns]]
- Object Oriented Design Patterns + Generic Programming Design Patterns + Functional Programming.
-
[[file:cpp-reference-card.org][General Programming Reference Card]] ** Libraries and frameworks
-
[[file:standard_library_map.org][Standard Library Map]]
- Hyperlinks to the C++ standard library and C++ ISO standard documentation categorized by common functionality.
-
[[file:boost-libraries.org][Boost Libraries / Boost Framework]]
- Boost Libraries (note: Boost libraries are regarded as a complement of the C++ standard library and many of its components come from Boost libraries.)
-
[[file:cpp-libraries-review.org][C++ Libraries Review / Lightweight libraries]]
-
[[file:Libraries.org][C and C++ Libraries Bookmarks]]
- Bookmarks of C++ libraries and frameworks for many domains, including: general C++ programming; system programming; embedded systems; physics, engineering and numerical computing.
-
[[file:embedded_scripting_languages.org][Embedded Scripting Languages]]
- Survey of small and lightweight programming languages available as libraries that can be embedded in C++ application for adding scripting capabilities. ** System Programming
-
[[file:Linux-unix-system-programming.org][Linux and Unix system programming in C++]]
- System programming on Unix-like operating system with focus on Linux.
-
[[file:WindowsAPI-cpp.org][Windows API Programming in C++]]
- C++ system programming for Win32/Win64 API. Note: The Windows API is not part of the ISO C++ Standard and is exclusive to this operating system.
** C and C++ Tooling *** Building Systems and package managers
-
[[file:compiler-flags-options.org][Compiler flags and options]]
- Reference card for C++ compiler options. GCC, Clang and MSVC(VC++) compilers.
-
[[file:building-system-cmake.org][Cmake Building System]]
- Coverage of CMake building system. One of the most used building system and with the best cross-platform support.
-
[[file:building-systems.org][Other building systems]]
- Coverage of C++ most used building systems such as GNU-Make and so on.
-
[[file:package-managers.org][Package Managers]]
*** General
-
[[file:Tooling.org][Tooling]]
- Compilation of several development tools for C and C++.
-
[[file:Cpp-C-Debuggers.org][C and C++ Debuggers Notes]]
- Notes about C and C++ debuggers. Covered: GDB (GNU Debugger) and WinDBG (Windows Debugger).
-
[[file:Doxygen-documentation.org][Doxygen - Documentation Generator]]
- Doxygen documentation generator examples.
-
[[file:Root-cern-repl.org][CERN's Root C++ REPL and CLING]]
- Notes about the CERN's interactive interpereter based on Clang/LLVM for C++ where the user can type and evaluate C++ code, load libraries like shared libraries, boost libraries and and also test C++ with immediate feedback. ROOT is invaluable tool for learn, practicing C++ and create demonstrations.
** Computer Graphics
- [[file:computer-graphics.org][Computer Graphics]]
- Basics of computer graphics programming and math focused on OpenGL API.
** Miscellaneous
-
[[file:cpp-alternatives.org][C++ Alternatives and mixed C++ development]]
- Mixed C++ development strategies and alternative programming languages to C++ with the following capabilities: native code compilation; high performance; static typing and ability to call C-APIs.
-
[[file:DLL-Binary-Components-SharedLibraries.org][Shared Libraries - DLL - Binary Components in C++ / FFIs - Language Interoperability]]
- Creating shared libraries, C-interfaces or C-APIs for C++ functions and classes. A C-interface allows a C++ library to be consumed from C and many programming languages with foreign-function interface support such as Python (ctypes FFI), C# Pinvoke, Java (JNA) and so on.
-
[[file:CwrapperToQtLibrary.org][C Wrapper for C++ Libraries and Interoperability]]
- Presents how to create C wrappers for calling C++ libraries from C and other programming languages via FFI - Foreign Function Interface. This note provides a sample C wrapper for QT-5 Widgets GUI library that allows calling QT from C, Julia language and D language. The techniques used in this particular case can be reused for interoperability between many other C++ libraries and programming languages.
-
[[file:Interfacing-C-APIs-and-libraries.org][Interfacing C APIs and libraries]]
- Examples about how to interface and create wrappers to C APIs or libraries in modern C++ or C++ >= C++11 and use STL containers with C-APIs.
-
[[file:resources-executable.org][Embed Resources into Executables]] (Resource compilation)
- About how to embed resources, assets, images, texts and binary files into executables.
-
[[file:sample-modern-cpp-programs.org][Sample programs in modern C++ style]]
- Complete small C++ programs and proof-of-concepts.
-
[[file:Rosetta_Stone_Translation.org][Rosetta Stone - English/Portuguese - Technical Terminology]]
- Indeted as reference about English technical terminology for Portuguese speakers. ** Bookmarks
-
[[file:bookmarks.org][Bookmarks]]
- Bookmarks, tools, online tools, conference videos and so on.
-
[[file:Videos-and-conferences.org][Videos and Conferences]]
** This Document
This Repository
- https://github.com/caiorss/C-Cpp-Notes
This Site
- https://caiorss.github.io/C-Cpp-Notes/
Notes
-
This document can also be viewed from Smart Phones, Tablets or any other small screen devices.
-
To open a link (a.k.a hyperlink) in a new tab, hold CTRL key and click at the linl.
-
The HTML version of this document was tested on web browsers: Firefox, Chrome, Chromium, Microsoft Edge. Unfortunately the html version still does not work well on Safari web browser.