C++

Quickstart (compile + run)

bash
cat > main.cpp <<'EOF'
#include <iostream>
int main(){ std::cout << "hello\n"; }
EOF

c++ -std=c++20 -Wall -Wextra -O2 main.cpp -o app
./app

Project setup (CMake minimal)

cmake
cmake_minimum_required(VERSION 3.20)
project(app LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
add_executable(app main.cpp)

RAII + vector

cpp
#include <iostream>
#include <vector>

int main() {
  std::vector<int> xs{1, 2, 3};
  std::cout << xs.size() << "\n";
}

Unique ptr

cpp
#include <memory>

auto p = std::make_unique<int>(42);

Variables + auto + const

cpp
int i = 1;
auto n = 123;        // deduced
const double pi = 3.14;

Iteration (range-for)

cpp
#include <vector>

std::vector<int> xs{1, 2, 3};
for (const auto &x : xs) {
  // ...
}

Functions (overload)

cpp
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }

Classes (constructor + method)

cpp
#include <string>

class User {
 public:
  User(std::string email) : email_(std::move(email)) {}
  const std::string& email() const { return email_; }

 private:
  std::string email_;
};