Modern C++ Features
Những tính năng nổi bật từ C++11 đến C++20
1. C++11
- auto, decltype: Suy luận kiểu tự động, giảm lặp lại.
- range-based for loop: Duyệt container đơn giản hơn.
- nullptr: Thay NULL, tránh lỗi ngầm do so sánh với int.
- Lambda expressions: Hàm ẩn danh, dùng cho callback/STL.
- Smart pointers:
unique_ptr,shared_ptr,weak_ptr. - Move semantics & rvalue reference: Tối ưu hiệu năng bằng cách tránh copy không cần thiết.
- std::thread, std::mutex: API đa luồng chuẩn.
- enum class: Enum an toàn kiểu, không trùng tên toàn cục.
📌 Lưu ý: Tránh lạm dụng
auto làm mất rõ ràng, tránh dùng shared_ptr quá mức gây leak.
2. C++14
- Generic lambdas: Lambda không cần chỉ rõ kiểu tham số.
- std::make_unique: Cách an toàn và ngắn gọn để tạo
unique_ptr. - Return type deduction: Hàm tự suy ra kiểu trả về với
auto.
3. C++17
- Structured bindings: Tách pair/tuple rõ ràng hơn.
auto [a, b] = std::make_pair(1, 2); - if constexpr: Điều kiện compile-time, tránh lỗi với template.
- std::optional: Tránh dùng nullptr hoặc boolean flag.
- std::variant: Union an toàn kiểu.
- Filesystem library: Làm việc với file system chuẩn C++.
- std::string_view: Truy cập chuỗi mà không copy.
4. C++20
- Concepts: Ràng buộc kiểu rõ ràng trong template.
- Ranges library: Viết pipeline hàm như functional programming.
- Coroutines:
co_await,co_yieldviết async như sync. - Calendar & timezone: Hỗ trợ thời gian chuẩn, tích hợp với chrono.
- Modules: Hệ thống module thay thế header, cải thiện tốc độ build.