Blog
Para quem já sabe o básico e quer ir fundo. Aqui o assunto é como os modelos funcionam em produção: memória, roteamento, ferramentas, agentes. O lado técnico que pouca gente explica direito.
C++ nasceu em 1979 (Bjarne Stroustrup, Bell Labs) como "C com classes". Padronizações: C++98, C++11 (moderno começa aqui — move semantics, auto, lambdas), C++14, C++17, C++20 (modules, concepts, ranges, coroutines), C++23 (std::expected, std::print). Compiladores: GCC g++, Clang++, MSVC; cada um com subset de C++23 suportado. Diferencial: zero-overhead abstractions (RAII, templates) com controle total de memória. Mercado 2026: games (Unreal, Unity runtime), browsers (Chrome V8, Firefox), trading HFT, bibliotecas numéricas (Eigen, OpenCV). C++17 é o patamar em produção; C++20/23 adoção crescente mas incompleta.
RAII (Resource Acquisition Is Initialization) é o diferencial C++ real. unique_ptr, shared_ptr, weak_ptr. Quando cada um. raw pointer só pra non-owning. Rule of 5 (ou Rule of 0 em moderno).
Copy pode ser caro (deep clone). Move transfere ownership (fast). lvalue vs rvalue, && reference, std::move (no-op, só cast), std::forward, perfect forwarding. Critical pra perf C++ moderno.
Templates era SFINAE hell. C++20 Concepts: requires clauses, named concepts, abbreviated templates (auto params). Error messages 10x melhor. template metaprogramming simplificado.
Ranges substituem iterator pairs. Lazy evaluation. Composable (views::filter | views::transform | views::take). std::ranges algorithms. Format library (std::format — C++20). Print (C++23).
Modules substituem #include legacy: faster compilation, encapsulação real. Coroutines: co_await, co_yield, co_return. Generators, async sem callback hell. MSVC + Clang + GCC suporte estável 2024+.
Cache locality (struct of arrays vs array of structs), branch prediction, inline assembly quando needed, SIMD intrinsics (SSE/AVX), constexpr compile-time eval, profile com perf + flamegraphs.
C++ Core Guidelines (Stroustrup + Sutter) — style guide oficial. clang-tidy (auto-check), include-what-you-use, clang-format. Sanitizers (ASan, TSan, UBSan, MSan). vcpkg/conan pra dependency management.
Build: parser JSON otimizado, ou thread pool, ou embedded DB. RAII strict, zero new/delete, concepts-based templates, modules, ranges-based code. Benchmarks vs alternatives. Zero sanitizer warning.