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.