Trang tài liệu
Khóa học C++ nền tảng
Chương 14. Tiêu chuẩn C++
C++0x

C++0x

cpp0x đề cập đến name làm việc cho C++11, trước đây được gọi là C++0x trước khi phát hành chính thức. C++11 là bản sửa đổi chính của tiêu chuẩn ngôn ngữ C++, được xuất bản vào năm 2011 và mang lại một số tính năng và cải tiến mới cho ngôn ngữ này.

Một số tính năng đáng chú ý trong C++11 bao gồm:

  • Từ khóa auto để suy luận kiểu tự động.
auto i = 42; // i là một int
auto s = "hello"; // s là một const char*
  • Vòng lặp for dựa trên phạm vi để lặp lại dễ dàng hơn trên các bộ lưu trữ.
std::vector<int> vec = {1, 2, 3};
for (int i : vec) {
    std::cout << i << std::endl;
}
  • Các hàm lambda để tạo các hàm ẩn danh.
auto add = [](int a, int b) { return a + b; };
int result = add(3, 4); // kết quả 7
  • nullptr để biểu thị các giá trị con trỏ null, thay vì sử dụng NULL.
int* p = nullptr;
  • Rvalue tham chiếu và di chuyển ngữ nghĩa để tối ưu hóa việc xử lý các đối tượng tạm thời.
std::string str1 = "hello";
std::string str2 = std::move(str1); // di chuyển nội dung của str1 sang str2
  • Khuôn mẫu variadic để tạo các mẫu có số lượng đối số thay đổi.
template <typename... Args>
void printArgs(Args... args) {
    // thân hàm
}
  • Assertion tĩnh cho xác nhận thời gian biên dịch.
static_assert(sizeof(int) == 4, "This code requires int to be 4 bytes.");
  • Hỗ trợ luồng cho lập trình đa luồng.
#include <thread>
 
void my_function() {
    // thân hàm luồng
}
 
int main() {
    std::thread t(my_function);
    t.join();
    return 0;
}

Đây chỉ là một vài ví dụ về nhiều tính năng mới được giới thiệu trong C++11. Để có danh sách đầy đủ, bạn có thể tham khảo tài liệu C++11.