CPP C++ Papyrus

Table of Contents

1 C++ - CPP

1.1 Quick Access

1.2 Core C++

1.3 Libraries and frameworks

1.4 System Programming

1.5 C and C++ Tooling

1.5.1 Building Systems and package managers

1.5.2 General

  • Tooling
    • Compilation of several development tools for C and C++.
  • C and C++ Debuggers Notes
    • Notes about C and C++ debuggers. Covered: GDB (GNU Debugger) and WinDBG (Windows Debugger).
  • Doxygen - Documentation Generator
    • Doxygen documentation generator examples.
  • 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.

1.6 Computer Graphics

  • Computer Graphics
    • Basics of computer graphics programming and math focused on OpenGL API.

1.7 Miscellaneous

  • 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.
  • 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.
  • 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.
  • 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.
  • Embed Resources into Executables (Resource compilation)
    • About how to embed resources, assets, images, texts and binary files into executables.
  • Sample programs in modern C++ style
    • Complete small C++ programs and proof-of-concepts.
  • Rosetta Stone - English/Portuguese - Technical Terminology
    • Intended as reference about English technical terminology for Portuguese speakers. (Note: This text database has more 1.5 megabyte, what can be heavy for phone users)


1.9 This Document

This Repository

This Site


  • 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.

Author: Caio Rodrigues Soares - caiorss [DOT] rodrigues [AT] gmail [DOT] COM

Created: 2022-09-17 Sat 14:49