C++ Best Practices About This repo contains list of C++ tools, coding standards and best practices with which I've encountered over the years. List Tools cpplint An automated checker to make sure a C++ file follows Google's C++ style guide clang-tidy Clang-based C++ “linter” tool. extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis. provides a convenient interface for writing new checks. ninja Small build system with a focus on speed Supports CMake's Ninja backend CMake Cross-platform family of tools designed to build, test and package software CMake C++ Project template Template for C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more. Cppcheck Static analysis Misra rule texts Open source clang-format C++ code formatter Can be implemented in the Build server, Link Clang indexer Parse source code into an abstract syntax tree (AST) Python bindings GoogleTest Google’s C++ testing and mocking framework. grep.app Search across a half million git repos Very fast Valgrind Number of debugging and profiling tools Detects memory-related errors common in C/C++ Google Benchmark Benchmark C/C++ code snippets similar to unit tests Ditto Windows Clipboard manager Helps with copy-paste-ing code Everything Locate files and folders by name instantly Compiler Explorer Lets you type code in one window and see the results of its compilation in another window Wandbox Run code trough the different compilers C++ Library project with CMake Conan package manager The open source, decentralized and multi-platform package manager to create and share all your native binaries. See the Conan introduction in the Knowledge base Knowledge base cppreference C++ reference web page Interrupt blog Blog about embedded C/C++ programming Feabhas blog Blog about developing software for real-time and embedded systems Declaration of VAR Quality blog about software development in general Learn C++ Website devoted to teaching you how to program in C++ Software Engineering at Google Book about Google Software engineering principles with designing, architecting, writing, and maintaining code. Handbook of Data Structures and Applications Discussion of well-known classes of data structures: Priority Queues, Dictionary Structures and Multidimensional structures. Mechanisms and tools that were developed to facilitate the use of data structures in real programs. Examination of the applications of data structures C++ Tools Ecosystem Collection of various C++ tools C/C++ Google Style Guides Most open-source projects developed by Google conform to the requirements in this guide. cppbestpractices Collaborative Collection of C++ Best Practices C++ (and Rust, embedded, ...) Talks List A list of talks about C++, Rust, embedded and related subjects compiled from youtube playlists WARNING: Contains a lot of talks CMake Inheritance explained Blog post where author explains how CMake inheritance works and how to use it. Introduction to Conan package manager Blog creates Demo project where it includes several libraries liked with the Conan package manager. Demo project is then built with CMake. Application bootstrap layer for various C/C++ platforms It's main goal is to provide compiler configuration for target platform, and abstraction of launching main application thread on target platform. CppCon 2018: Mateusz Pusz “Git, CMake, Conan - How to ship and reuse our C++ projects” Provides great detail about how to use modern CMake to properly setup projects and also it teaches us how to use modern package manager called Conan.
C++ Best Practices
This repo contains list of C++ tools, coding standards and best practices with which I've encountered over the years.