The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++ (by isocpp)


Basic CppCoreGuidelines repo stats
21 days ago

isocpp/CppCoreGuidelines is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.

CppCoreGuidelines Alternatives

Similar projects and alternatives to CppCoreGuidelines

  • GitHub repo Vcpkg

    C++ Library Manager for Windows, Linux, and MacOS

  • GitHub repo LearnOpenGL

    Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

  • GitHub repo dmd

    dmd D Programming Language compiler

  • GitHub repo pear

    WebRTC Library for IoT/Embedded Device using C (by sepfy)

  • GitHub repo build-your-own-x

    🤓 Build your own (insert technology here)

  • GitHub repo deno

    A secure JavaScript and TypeScript runtime

  • GitHub repo Code-Server

    VS Code in the browser

  • GitHub repo prettier

    Prettier is an opinionated code formatter.

  • GitHub repo husky

    Modern native Git hooks made easy 🐶 woof!

  • GitHub repo wtfjs

    🤪 A list of funny and tricky JavaScript examples

  • GitHub repo FizzBuzz Enterprise Edition

    FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.

  • GitHub repo SFML

    Simple and Fast Multimedia Library

  • GitHub repo Exercism - Scala Exercises

    Crowd-sourced code mentorship. Practice having thoughtful conversations about code.

  • GitHub repo Taskflow

    A General-purpose Parallel and Heterogeneous Task Programming System

  • GitHub repo GLM

    OpenGL Mathematics (GLM)

  • GitHub repo Mumble

    Mumble is an Open Source, low-latency, high quality voice chat software

  • GitHub repo range-v3

    Range library for C++14/17/20, basis for C++20's std::ranges

  • GitHub repo Open-Source Vulkan C++ API

    Open-Source Vulkan C++ API

  • GitHub repo Vc

    SIMD Vector Classes for C++

  • GitHub repo adventofcode

    Advent of Code solutions of 2015, 2016, 2017, 2018, 2019 and 2020 in Scala

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better CppCoreGuidelines alternative or higher similarity.


Posts where CppCoreGuidelines has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-05-05.
  • Learning C++ as a C developer?
  • Getting into C++ from Java and Python?
  • How to implement your own higher level threading in C++
    reddit.com/r/cpp | 2021-05-10
    I found an example in the CppCoreGuidelines that is surprisingly similar to the example in my article: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cp42-dont-wait-without-a-condition
  • The order of pointers/variables declared in member function, unfortunately, matters.
    Take a look at https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md
    Personally, I use gsl::index from the Guidelines Support Library (for the C++ Core Guidelines, which is an alias for std::ptrdiff_t.
  • Why do default parameters in virtual functions not follow dynamic dispatch?
    I don't know if it's worth complicating the feature just for this. You also have the extra overhead to consider. To stay true for the phrase "don't pay for what you don't use" maybe you would have to opt-in to this behaviour (virtual default arguments?) If it's only for virtual functions it might be acceptable because people don't normally use default arguments with virtual functions, but if you want default arguments to work for function pointers as well it would incur an overhead to all functions and many people would find that unacceptable.
  • C++ Concepts and logical operators
    dev.to | 2021-05-04
    Not using negations directly, but putting expressions into named concepts seems to go against the rule of using standard concepts whenever possible instead of writing our own concepts. But due to the subsumption rules, this is necessary.
  • C++ Constructors, Memory, and Lifetimes
    news.ycombinator.com | 2021-05-02
    As you are officially discouraged to use new and delete directly (https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines...) and I fully agree with this guideline, I was disappointed to see new being mentioned so early and not immediately being followed up with std::unique_ptr and std::shared_ptr. Especially because you introduced the constructor/destructor subsection with how destructors can be used to free memory. A general mention of std::shared_ptr would have been expected as well, I think. This seems like a worthwhile resource for beginners, so it's all the more unfortunate that it is behind on showing modern C++. Generally I feel like a big issue of the language is that most learning resources are not representative of how good, modern C++ should look and therefore safety and general development experience suffers.
  • What type should be used for sizes and subscripts?
    Also, the C++ Core Guidelines suggest gsl::index.
  • Lambda functions
    Another use for lambdas is complex initialization (ES.28 on the C++ core guidelines).
  • Initializing another class in class constructor
    See http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-list
  • JavaScript Developer Lessons: Code Styling Guide
    dev.to | 2021-04-30
    C++ Core Guidelines - A set of tried-and-true guidelines, rules, and best practices about coding in C++.
  • Our teacher sure is a good teacher.
    Or that in modern C++ using new and delete directly is discouraged. You are supposed to either use stack variables, smart pointers or have a container handle the lifetime of objects for you.
  • Simplify Code with if constexpr and Concepts in C++17/C++20
    Once you accommodate yourself with modern c++ those official guidelines made by iso committee are super helpful: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
  • Modern C++ Won't Save Us (2019)
    news.ycombinator.com | 2021-04-25
    https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines For new code stick to the core guidelines to make life much easier. I think c++ is imperfect, but it is de facto the best/fastest/most-powerful language in existence right now.