development:cpp
                Differences
This shows you the differences between two versions of the page.
| development:cpp [2025/10/30] – created hayati | development:cpp [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTRANS~~ | ||
| + | {{indexmenu_n> | ||
| + | |||
| + | ====== C++ ====== | ||
| + | |||
| + | There are many interesting C++ sites and blogs. There' | ||
| + | |||
| + | ===== Sites, Blogs and Books ===== | ||
| + | |||
| + | * hacking C++ | ||
| + |     * https:// | ||
| + | * C++ and other development and devop themes | ||
| + |     * https:// | ||
| + | * Fluent C++ | ||
| + |     * https:// | ||
| + |   * [[https:// | ||
| + |     * [[https:// | ||
| + |   * [[https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Bartek (Bartlomiej Filipek) | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Rainer Grimm | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Bjarne Stroustrup | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Andrei Alexandrescu | ||
| + |     * http:// | ||
| + |     * https:// | ||
| + | * Herb Sutter | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Nicolai Josuttis | ||
| + |     * http:// | ||
| + |     * https:// | ||
| + | * Scott Meyers | ||
| + |     * https:// | ||
| + | * John Lakos | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Jonathan Müller | ||
| + |     * https:// | ||
| + | * Eli Bendersky | ||
| + |     * https:// | ||
| + | * Ofek Shilon | ||
| + |     * https:// | ||
| + | * Šimon Tóth | ||
| + |     * https:// | ||
| + | * A Complete Guide to Standard C++ Algorithms | ||
| + |       * https:// | ||
| + |       * https:// | ||
| + | |||
| + |   * [[https:// | ||
| + | |||
| + | * Reference | ||
| + |     * https:// | ||
| + | * cheatsheet of modern C++ language and library features | ||
| + |     * https:// | ||
| + | * C++ Best Practices | ||
| + |     * https:// | ||
| + | * C++ Core Guidelines | ||
| + |     * http:// | ||
| + | |||
| + | ===== Conferences & YouTube channels ===== | ||
| + | |||
| + |   * https:// | ||
| + |   * https:// | ||
| + | |||
| + | ===== Libraries ===== | ||
| + | |||
| + | * Lists | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Boost | ||
| + |     * https:// | ||
| + |   * https:// | ||
| + |     * https:// | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + | * static / small buffer optimized vectors | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Enums | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Coroutines to Implement C++ Exceptions | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * Martin Moene | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * more @ https:// | ||
| + | * Scope Exit | ||
| + |     * with LAMBDA and '' | ||
| + |       * https:// | ||
| + |       * ''# | ||
| + |       * '' | ||
| + |       * '' | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * (G)UI | ||
| + |     * http:// | ||
| + |       * https:// | ||
| + |       * http:// | ||
| + |       * http:// | ||
| + |       * http:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * (T)UI | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | |||
| + | |||
| + | ===== Selected topics ===== | ||
| + | |||
| + | ==== Out-of-memory handling strategies ==== | ||
| + | |||
| + | * it's really hard to recover from out-of-memory situations | ||
| + | * the program needs the possibility to free (or shrink) some memory resources | ||
| + | * **all** memory allocations - **including** utilized libraries - have to be controlled | ||
| + | * that's practically impossible for big applications depending on many external libraries | ||
| + | * Linux and it's OOM-killer need special attention | ||
| + | * related: the requirement for an exception-safe c++ program, so that resources are not leaked | ||
| + |   * for most applications, | ||
| + | |||
| + | some Links: | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + | * Linux' OOM-Killer: | ||
| + |     * https:// | ||
| + |     * [[https:// | ||
| + |     * [[https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | |||
| + | |||
| + | ==== Templates and SFINAE enable_if ==== | ||
| + | |||
| + |   * " | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + | |||
| + | ==== Dynamic Polymorphism vs Curiously Recurring Template Pattern (CRTP) ==== | ||
| + | |||
| + | CRTP: injecting/ | ||
| + | |||
| + |   * https:// | ||
| + |   * https:// | ||
| + | |||
| + | ==== Weak Symbols ==== | ||
| + | |||
| + |   * https:// | ||
| + |   * https:// | ||
| + |   * https:// | ||
| + | |||
| + | ==== RAII ==== | ||
| + | |||
| + |   * https:// | ||
| + | |||
| + | ===== Misc articles ===== | ||
| + | |||
| + | * 50 terrible coding tips for a C++ developer | ||
| + |     * https:// | ||
| + | * The Day The Standard Library Died | ||
| + |     * https:// | ||
| + | |||
| + | [[https:// | ||
| + | <wrap indent>// | ||
| + | <wrap indent>// | ||
| + | <wrap indent>// | ||
| + | <wrap indent>// | ||
| + | |||
| + | ===== IDE ===== | ||
| + | |||
| + | ==== Compiler & Standard support ==== | ||
| + | |||
| + |   * https:// | ||
| + |   * https:// | ||
| + | * predefined preprocessor definitions | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | |||
| + | |||
| + | ==== Compiler + IDE ==== | ||
| + | |||
| + | * Qt Creator | ||
| + | * Windows Offline Installer includes MinGW gcc | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + | * JetBrains CLion | ||
| + |     * https:// | ||
| + | * Microsoft Visual Studio | ||
| + |     * https:// | ||
| + | * MinGW | ||
| + |     * https:// | ||
| + | * CodeLite | ||
| + |     * https:// | ||
| + | * embarcardero C++ Builder | ||
| + |     * https:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Profiler ==== | ||
| + | |||
| + | * Intel VTune Profiler | ||
| + |     * https:// | ||
| + | * Linux perf record | ||
| + |     * https:// | ||
| + |     * https:// | ||
| + |   * https:// | ||
| + | * valgrind: | ||
| + |     * https:// | ||
| + | * cachegrind | ||
| + |       * https:// | ||
| + | * callgrind | ||
| + |       * https:// | ||
