Rico's Nerd Cluster

「离开世界之前 一切都是过程」

C++ - Language Properties

Zero-Overhead Abstraction, Garbage-Collection-Free, Endianness Handling, One-Definition-Rule (ODR)

C++ and C are known for their high performance. High level languages like Python are known for their relative ease of use. In this article, we will compare the two sides and see what makes C++ spec...

C++ - Coding Styles

Casing

Casing namespace: lower case like std, boost.

C++ - Functions, Lambda

Lambda, Functors, Function Pointer

Functor A functor is an object that acts like a function, using the overloaded operator(). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 struct greaters{ greaters(){} operator()(int a, int b){retur...

C++ - [Templates 2] Dependent Names

Disambiguate Templates

One Example That Explains Dependent Names In C++, a name is dependent if its meaning or type, value, or definition lookup depends on, a template param T. Some examples include: std::vector<...

C++ - [Templates 1] Template Parameters

Class Templates, Dependent Name Lookup, Non-Type Template Parameters, requires, concept

Class Template Be careful with nested class inside a class template - we need to specify the template parameters here as well. 1 2 3 4 5 6 7 8 9 10 11 template <typename T> class A{ pub...

C++ - Static Functions And Keyword

Static Functions And Keyword

As a very high level summary, the keyword static has two uses: File scope static variables and functions can be only accessed within the current translation unit (i.e., the cpp source file) C...

C++ - Enum

Static Functions And Keyword

Enum Class Enum class is a type safe way to initialize enums. It’s called “scoped enum”, which is an integral type under the hood. They do not implicitly convert to int or any other type to enforc...

Common Robotics CPP Software Packages

TBB

TBB TBB (Intel Threading Building Blocks) is a parallel-programming library that abstracts out details for managing threads, synchronization, or load balancing explicitly. Key features include: ...

C++ - Constness

constexpr, if constexpr, consteval

constexpr constexpr in C++ allows expressions to be evaluated at compile time rather than runtime. This feature helps optimize programs by computing constant values during compilation and enables ...

C++ - Cpp14, 17, 20 Features

Lambda Capture

Introduction What is C++? My definition is that C++ is a set of progressive standards. So far, there are C++98/03 (small modification), C++ 11 (Major Release), C++ 14, C++17, C++20, C++23. Each st...