Rust and C++

Rust for Modern C++ devs (2022) – Graydon's talk.

Mixing mutable and immutable references

fn main() {
    let mut v = vec![1, 2, 3];
    let mut first = &mut v[0];
    v.push(4);
    *first += 1;
    println!("{}", v[0]);
}
#include <iostream>
#include <vector>

int main() {
    auto v = std::vector<int>{1, 2, 3};
    auto& first = v[0];
    v.push_back(4);
    first++;
    std::cout << first << std::endl;
    return 0;
}
import Foundation

var v = [1, 2, 3]
var first = v.withUnsafeMutableBufferPointer { $0 }[0]
v.append(4)
first += 1
print(v[0])