Common
- C++ libraries
- Awesome C++ A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-… stuff.
Documentation
- C++ reference C++98, C++03, C++11, C++14, C++17, C++20, C++23
IDE
- C/C++ for Visual Studio Code C/C++ support for Visual Studio Code is provided by a Microsoft C/C++ extension to enable cross-platform C and C++ development on Windows, Linux, and macOS.
Compilers
- Intel oneAPI C++ and Fortran compiler Intel oneAPI (first official release December 8, 2020) is a cross-platform toolset that covers several languages including C, C++, Fortran and Python. Intel oneAPI replaces Intel Parallel Studio. Intel oneAPI including the Fortran compiler is free-to-use and no login is required to download oneAPI.
Types
- VS: Data Type Ranges
- VS: Built-in types (C++)
C++ Features
Tips and Tricks
Technical Resources
- Additional article and video links are located here
Common resources
- Include What You Use include-what-you-use is a clang-based library that reworks the #includes sections of a C++ file, be there a header or a .cpp file.
- Video: Aug 9, 2017: Много копий было сломано: по значению или по ссылке? — Алексей Салмин
- Intro to C++20’s Concepts - Hendrik Niemeyer
- Jan 22, 2015: Некоторые паттерны реализации полиморфного поведения в C++ - Дмитрий Леванов Основываясь на опыте разработки Крипты, Дмитрий рассмотрит средства реализации статического и динамического полиморфизма в C++, а также некоторые их паттерны и антипаттерны.
Virtual functions
Synchronization mechanisms
- Codeproject: Synchronization with Visual C++ and the Windows API This is an article about many of the synchronization mechanisms available to C++ developers creating high performance, scalable, software for the Windows platform. To set things in perspective, we start out by creating a simple I/O completion port based server, receiving 5GB/s sent by one hundred concurrent clients.
Multithreading
- 006. Многопоточность в С++ – Максим Бусел
std::thread, std::promise, std::future, std::packaged_task (i.e. future+promise+callable+exception-safe), std::async.
- передача исключений между потоками:
promise<void> p; p.set_exception(std::current_exception());
- передача исключений между потоками:
Logging
- Codeproject: Dynamic Logging
Articles and Videos
- Секретный конструктор std::shared_ptr У std::shared_ptr есть небольшой секрет: очень полезный конструктор, о котором большинство программистов даже не слышали. Это псевдонимный конструктор (aliasing constructor).
- Youtube: Михаил Матросов — Спецификаторы, квалификаторы и шаблоны В этом докладе Михаил попытается разложить по полочкам всё это многообразие ключевых слов. Вспомним про linkage, storage duration и инстанциации шаблонов (и что изменится с приходом модулей в С++20). Разберёмся, какая связь между template и inline, между static и constexpr. Поймём, зачем нам extern, когда у нас есть inline. И осознаем, как нам потребовалось почти 20 лет, чтобы научиться нормально объявлять константы.
-
Youtube: [Полухин Антон C++17](https://youtu.be/GK9gtIrJaBk)