// Recursive lambda auto factorial = [](this auto self, int n) -> int { return n <= 1 ? 1 : n * self(n - 1); };