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.