C++11, được biết đến trước đây với tên gọi C++0x, là tên gọi của tiêu chuẩn của ngôn ngữ lập trình C++. Tiêu chuẩn này được chấp nhận bởi tổ chức ISO vào ngày 12 tháng 4 năm 2011 nhằm thay thế cho tiêu chuẩn C++03.. Tên gọi C++11 của tiêu chuẩn này dược dựa trên truyền thống đặt tên phiên bản ngôn ngữ theo ngày xuất bản của bản chi tiết kỹ thuật (specification).
C++11 đưa thêm một số mở rộng mới vào phần ngôn ngữ cốt lõi C++ và một số mở rộng cho thư viện chuẩn của C++, trong đó bao gồm hầu hết các thư viện trong báo cáo kỹ thuật TR1 (C++ Technical Report 1) ngoại trừ thư viện các hàm toán học đặc biệt. C++11 được ban hành dưới dạng tiêu chuẩn ISO/IEC 14882:2011 vào tháng 9/2011. Bản thảo tiêu chuẩn mới nhất là N3242 được viết vào ngày 28 tháng 2 năm 2011. Tuy nhiên sự khác biệt giữa bản thảo này và C++11 là không đáng kể.
Một số đề xuất thay đổi cho việc cập nhật tiêu chuẩn
Các thay đổi cho C++ bao gồm cả những thay đổi cho phần cốt lõi ngôn ngữ và những thay đổi cho phần thư viện chuẩn. Trong quá trình phát triển tiêu chuẩn mới, ủy ban cập nhật dựa trên các nguyên tắc sau:
- Duy trì sự ổn định và tương thích với chuẩn C++98 và có thể tương thích với cả ngôn ngữ C.
- Ưu tiên việc đưa các thay đổi vào thư viện chuẩn hơn là đưa vào phần ngôn ngữ cốt lõi.
- Ưu tiên các thay đổi có thể thay đổi căn bản các kỹ thuật lập trình.
- Ưu tiên nâng cấp các thiết kế hệ thống và thiết kế thư viện hơn là việc đơn thuần đưa thêm các chức năng mới cho các ứng dụng cụ thể.
- Tăng cường độ an toàn cho các kiểu (type) bằng cách đưa vào các kỹ thuật mới an toàn hơn.
- Tăng hiệu năng và khả năng làm việc trực tiếp với phần cứng.
- Cung cấp các giải pháp chính xác cho các vấn đề hay các bài toán thực tế.
- Thực thi nguyên tắc "zero-overhead" (tạm dịch: chi phí phát sinh bằng không) trong đó quy định các hỗ trợ thêm cho một số tính năng chỉ được sử dụng khi ta sử dụng tính năng đó.
- Làm cho ngôn ngữ C++ trở nên dễ học và dễ dạy hơn bằng các giảm thiểu các tính năng mà cần các lập trình viên chuyên nghiệp.
Việc chú trọng vào những người mới học được coi là rất quan trọng vì đối tượng này chiếm phần lớn số lượng các lập trình viện và đa số họ có xu hướng chỉ chú tâm vào các lĩnh vực chuyên môn hóa. Việc đưa ra mẫu hình lập trình mới cũng có thể gây ra những khó khăn nhất định cho việc tiếp cận ngay cả với những người có nhiều kinh nghiệm lập trình C++.
Các mở rộng cho phần ngôn ngữ cốt lõi của C++
Một chức năng của C++11 là sự phát triển của ngôn ngữ cốt lõi. Lĩnh vực ngôn ngữ cốt lõi đã được cải thiện đáng kể bao gồm hỗ trợ đa luồng (multithreading), hỗ trợ lập trình tổng quát?, khởi tạo đồng bộ, và cải tiến hiệu suất.
Về mục đích của điều khoản này, các tính năng ngôn ngữ cốt lõi và những thay đổi được nhóm lại thành bốn phần chung: tăng cường thời gian chạy hiệu suất, cải tiến hiệu suất thời gian xây dựng, cải tiến khả năng sử dụng và các chức năng mới. Một số tính năng có thể rơi vào nhiều nhóm, nhưng chúng chỉ được nhắc đến trong các nhóm chủ yếu đại diện cho tính năng này.
Các cải tiến hiệu năng thực thi của ngôn ngữ cốt lõi
C++11 đưa ra nhiều cải tiến nhằm nâng cao hiệu năng thực thi về việc sử dụng bộ nhớ hay về tốc độ thực thi của chương trình.
Tham chiếu R - value và cấu trúc động
Trong C++03 và các phiên bản trước, biến tạm? (được gọi là R - value) thường nằm bên phải của phép gán, được xây dựng chắc chắn như không thể thay đổi - như trong C, được xem là giống như từ const T và các "type". Tuy nhiên trong một số trường hợp, các biến tạm có thể được thay đổi, động thái này thậm chí được coi là một kẽ hở hữu ích. C++11 cho biết thêm một kiểu tham chiếu không dùng hằng mới gọi là "tham chiếu R - value", được xác định bởi T&&. Điều này có nghĩa là biến tạm vẫn được phép sửa đổi sau khi khởi tạo, với mục đích cho phép một "ngôn ngữ khả chuyển".
Một vấn đề hiệu suất kình niên với C++03 là bản sao chìm tốn nhiều bộ nhớ và không cần thiết có thể xuất hiện khi một đối tượng được truyền theo tham trị. Để minh họa cho vấn đề này, ta xét một biến cục bộ std::vector, bao hàm một mảng kiểu C với kích thước xác định. Nếu một vector dùng làm biến tạm được tạo ra hay là giá trị trả về từ một hàm, nó có thể được lưu trữ chỉ bằng cách tạo ra một vector mới và sao chép tất cả dữ liệu từ R - value vào nó (để đơn giản, ta bỏ qua việc tối ưu hóa giá trị trả về)
Các cải tiến hiệu năng biên dịch của ngôn ngữ cốt lõi
Tiêu bản ngoài
Tiểu bản ngoài (tiếng Anh: extern template) là cú pháp mới được C++11 cung cấp nhằm rút ngắn thời gian biên dịch.
Trong phiên bản C++03, chương trình biên dịch phải khởi tạo một tiêu bản (template) mỗi khi gặp tiêu bản đó khi dịch một đoạn mã lệnh nào đó. Nếu chỉ một tiêu bản của cùng một kiểu dữ liệu của các đoạn mã lệnh cần dịch được khởi tạo một lần thì việc biên dịch sẽ trở nên nhanh hơn rất nhiều. Hiện tại chúng ta không có cách nào làm được việc này trong C++03. Chính vì vậy C++11 đã giới thiệu cú pháp mới: tiêu bản ngoài (extern template) nhằm hỗ trợ cho việc định nghĩa tiêu bản ngoài. Ví dụ:
Trong C++03, cú pháp sau dùng để yêu cầu trình biên dịch khởi tạo một tiêu bản:
template class std::vector;
Hiện tại C++11 cung cấp cú pháp sau để yêu cầu trình biên dịch không khởi tạo tiêu bản khi dịch đoạn mã này:
extern template class std::vector;
Các cải tiến về việc sử dụng ngôn ngữ cốt lõi
Các cải tiến này nhằm làm cho việc sử dụng ngôn ngữ trở nên dễ dàng hơn và tăng sự an toàn các kiểu dữ liệu, loại bớt các đoạn mã lặp và giúp tránh nhiều đoạn mã lệnh sai.
Các danh sách khởi tạo
C++03 kế thừa tính năng "danh sách khởi tạo" từ ngôn ngữ C. Một kiểu cấu trúc (struct) hay một mảng (array) có thể được khởi tạo bằng một danh sách các tham số đầu vào theo thứ tự của các thành viên trong cấu trúc hoặc mảng đó. Các danh sách khởi tạo này có thể được tạo ra theo phương thức đệ quy (recursive) nhằm định nghĩa các cấu trúc hay mảng lồng xếp nhau. Ví dụ:
struct Object
{
float first;
int second;
};
Object scalar = {0.43f, 10}; //One Object, with first=0.43f and second=10
Object anArray[] = ; //An array of three Objects
Tính năng này rất hữu ích khi sử dụng với các cấu trúc dữ liệu tĩnh (static).
C++ cũng hỗ trợ việc sử dụng hàm khởi tạo (constructor) để khởi tạo một đối tượng của một lớp nào đó nhưng không tạo được sự thuận tiện như danh sách khởi tạo. C++03 chỉ hỗ trợ danh sách khởi tạo cho các cấu trúc (struct) và các lớp (class) phù họp với định nghĩa Dữ liệu cũ đơn giả (POD - Plain Old Data). C++11 mở rộng danh sách khởi tạo bằng cách cho phép chúng có thể được sử dụng với tất cả các lớp (class), kể cả các thùng chứa chuẩn (standard containers) của C++ như std::vector
. Ví dụ:
class SequenceClass {
public:
SequenceClass(std::initializer_list list);
};
Khai báo trên cho phép chúng ta khởi tạo một đối tượng mới như sau:
SequenceClass some_var = {1, 4, 5, 6};
Hàm khởi tạo đặc biệt này được gọi là hàm khởi tạo theo danh sách khởi tạo (initializer-list constructor). Các lớp có các hàm khởi tạo đặc biệt này sẽ được xử lý một cách đặc biệt trong quá trình khởi tạo đồng nhất(xem thêm dưới đây).
Các cải tiến về tính năng ngôn ngữ cốt lõi
Các thay đổi của thư viện chuẩn C++
👁️
0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**C++11**, được biết đến trước đây với tên gọi C++0x, là tên gọi của tiêu chuẩn của ngôn ngữ lập trình C++. Tiêu chuẩn này được chấp nhận bởi tổ chức ISO vào ngày 12
Serum Vitamin C Anti Aging Hãng sản xuất: - All Natural AdviceMade in CANADA Serum Top seller tại thị trường CANADAPREMIUM GRADE VITAMIN C SERUM: - Công thức tiên tiến của chúng tôi sử dụng
**C++14** là phiên bản của tiêu chuẩn ISO / IEC 14882 cho ngôn ngữ lập trình C++. Nó được dự định là một phần mở rộng nhỏ so với C++11, với chủ yếu là sửa
✅Serum Vitamin C Anti AgingHẵng sản xuất: - All Natural Advice made in CANADASerum Top seller tại thị trường CANADA, dễ dàng đọc tài liệu tiếng anh và các đánh giá tích cực trên trang
Natural Vitamin 21.5 Enhancing Sheet Maskvitamin C 11%vitamin E 10.5%Mặt nạ giấy Natural Vitamin 21.5 Enhancing Hàn Quốc 100% cottonCông dụng tuyệt vời từ Natural Vitamin 21.5 Enhancing Sheet Mask Hàn QuốcGiảm hẳn tình trạng
™ ra đời năm 2010, với mong muốn cải thiện một số hạn chế của MTA. Phần bột của ™ chứa tricalcium silicate, calcium carbonate và zirconium oxide trong khi đó phần lỏng chứa calcium
™ ra đời năm 2010, với mong muốn cải thiện một số hạn chế của MTA. Phần bột của ™ chứa tricalcium silicate, calcium carbonate và zirconium oxide trong khi đó phần lỏng chứa calcium
™ ra đời năm 2010, với mong muốn cải thiện một số hạn chế của MTA. Phần bột của ™ chứa tricalcium silicate, calcium carbonate và zirconium oxide trong khi đó phần lỏng chứa calcium
**C ++ 17** là phiên bản sửa đổi của tiêu chuẩn ISO/IEC 14882 cho ngôn ngữ lập trình C++. ## Lịch sử Trước khi Ủy ban Tiêu chuẩn C++ ấn định chu kỳ phát hành
Trang này dành cho tin tức về các sự kiện xảy ra được báo chí thông tin trong **tháng 11 năm 2020**. Tháng này, sẽ bắt đầu vào chủ nhật, và kết thúc vào thứ
__NOTOC__ Danh sách máy bay :A B C-D E-H I-M N-S T-Z ## C ### CAB * CAB Minicab * CAB Supercab ### CAIC xem Chengdu ### Call Aircraft Company * CallAir S-1 * CallAir
nhỏ|Những người ủng hộ phong trào đòi sự thật về vụ 11 tháng 9 tại một cuộc biểu tình ở [[Los Angeles, tháng 10 năm 2007]] nhỏ|Hai người giữ một biểu ngữ của kiến trúc
**USS _Walter C. Wann_ (DE-412)** là một tàu hộ tống khu trục lớp _John C. Butler_ từng phục vụ cùng Hải quân Hoa Kỳ trong Chiến tranh Thế giới thứ hai. Nó là chiếc tàu
Đây là bài viết chi tiết về **lịch sử câu lạc bộ A.C. Milan** một trong những câu lạc bộ bóng đá thành công nhất thế giới. Ở đấu trường quốc tế, đội đã giành
**Câu lạc bộ bóng đá Wrexham** là một câu lạc bộ bóng đá chuyên nghiệp có trụ sở ở Wrexham, Wales. Thành lập năm 1864, đây là câu lạc bộ lâu đời nhất ở Wales
**Câu lạc bộ bóng đá Tottenham Hotspur** (), còn được gọi là **Tottenham** () hoặc **Spurs**, là một câu lạc bộ bóng đá chuyên nghiệp của Anh có trụ sở tại Luân Đôn, Anh. Sân
**Câu lạc bộ bóng đá Nantwich Town** là một câu lạc bộ bóng đá bán chuyên nghiệp có trụ sở tại Nantwich, Cheshire, Anh. Câu lạc bộ được thành lập vào năm 1884 và có
**Yakovlev Yak-11** (tên ký hiệu của NATO: "Moose", tiếng Nga: **Як-11**) là một máy bay huấn luyện được Không quân Xô viết và không quân các nước thuộc khối Xã hội chủ nghĩa sử dụng
thumb|Chiếc [[European Champion Clubs' Cup|Cúp C1 Liverpool giành được năm 2005]] Lịch sử Câu lạc bộ bóng đá Liverpool từ năm 1985 tới nay bắt đầu từ việc bổ nhiệm Kenny Dalglish làm huấn luyện
Dưới đây là kỷ lục và số liệu thống kê của **Chelsea Football Club.** thumb|[[Frank Lampard là cầu thủ ghi nhiều bàn thắng nhất lịch sử Chelsea]] ## Ra sân ### Kỷ lục cá nhân
**Câu lạc bộ bóng đá Cheltenham Town** là một câu lạc bộ bóng đá chuyên nghiệp có trụ sở tại thị trấn Cheltenham, Gloucestershire, Anh. Đội thi đấu ở , hạng 4 của bóng đá
**Washington, D.C.**, tên chính thức là **Đặc khu Columbia** (), còn được gọi là **Washington** hoặc **D.C.**, là thủ đô và là đặc khu liên bang duy nhất của Hoa Kỳ. Nó tọa lạc trên
**Apollo 11** (16–24 tháng 7 năm 1969) là chuyến bay vào vũ trụ của Hoa Kỳ đã lần đầu tiên đưa con người đặt chân lên bề mặt Mặt Trăng. Chỉ huy Neil Armstrong cùng
**Câu lạc bộ bóng đá Maidstone United** là một câu lạc bộ bóng đá chuyên nghiệp Anh đến từ Maidstone, Kent. Hiện tại đội đang thi đấu ở National League South, cấp độ thứ sáu
**Câu lạc bộ bóng đá Exeter City** là một câu lạc bộ bóng đá đến từ Exeter, Devon, Anh. Đội bóng thi đấu ở , cấp độ 4 trong hệ thống các giải bóng đá
**USS _Alvin C. Cockrell_ (DE-366)** là một tàu hộ tống khu trục lớp _John C. Butler_ từng phục vụ cùng Hải quân Hoa Kỳ trong Chiến tranh Thế giới thứ hai. Nó là chiếc tàu
**Câu lạc bộ bóng đá Manchester United** không có được những thành công lớn như vậy cho đến thập niên 1990 và những năm đầu 2000, khi Sir Alex Ferguson dẫn dắt đội đoạt 8
=> Đo thân nhiệt tự động=> Báo động tức thì=> Lắp đặt đơn giản LEAPUP SCANLITE K7Là thiết bị đo thân nhiệt tự động tốc độ cao, kết hợp với báo động,cảnh báo tự động
**Câu lạc bộ bóng đá Manchester United** (tiếng Anh: _Manchester United Football Club_, hay ngắn gọn là **MU** hay **Man Utd**) là một câu lạc bộ bóng đá chuyên nghiệp có trụ sở tại Old
**Câu lạc bộ bóng đá Newcastle United** là một câu lạc bộ bóng đá chuyên nghiệp Anh đặt trụ sở tại Newcastle upon Tyne ở miền Đông Bắc nước Anh. Sân nhà của câu lạc
**Câu lạc bộ bóng đá Darlington** là một câu lạc bộ bóng đá Anh đến từ Darlington, County Durham. Đội là thành viên của và thi đấu ở Blackwell Meadows. Câu lạc bộ được thành
**Bradford City Association Football Club** là câu lạc bộ bóng đá nằm ở Bradford, West Yorkshire. Thành lập vào năm 1903, hiện tại đội bóng đang thi đấu ở League One. Màu sắc chủ đạo
Câu lạc bộ bóng đá Bristol City là câu lạc bộ bóng đá thuộc thành phố Bristol của nước Anh. Họ chơi trên sân vận động Ashton Gate nằm ở phía tây nam thành phố.
**Câu lạc bộ bóng đá Wycombe Wanderers** là một câu lạc bộ bóng đá chuyên nghiệp có trụ sở tại thị trấn High Wycombe, Buckinghamshire, Anh. Câu lạc bộ hiện đang thi đấu ở EFL
**Câu lạc bộ bóng đá Newport County** () là một câu lạc bộ bóng đá chuyên nghiệp ở Newport, South Wales. Đội thi đấu ở , cấp độ 4 của hệ thống giải bóng đá
**Sự kiện 11 tháng 9**, còn được gọi là **vụ khủng bố ngày 11 tháng 9**, **cuộc tấn công ngày 11 tháng 9** hay đơn giản là **11/9** (; ở Hoa Kỳ thường được gọi
Đây là chủ đề về ** Lịch sử của Chelsea Football Club**, một câu lạc bộ bóng đá Anh có trụ sở tại Fulham, Tây Luân Đôn. Về thông tin chung của câu lạc bộ,
thumb|Bản sao bốn chức vô địch [[European Champion Clubs' Cup|Cúp các câu lạc bộ vô địch châu Âu mà Liverpool giành được từ 1977 tới 1984 trưng bày tại bảo tàng của câu lạc bộ.]]
Mô tả:Tên: giày trẻ mới biết điMàu sắc: Nhiều màuHọa tiết: NơChất liệu phần trên: CottonDanh mục sản phẩm: Xăng đanĐộ tuổi phù hợp: 0-18 thángDành cho mùa: Mùa hèGiới tính phù hợp: NữĐộ dày:
Mô tả:Tên: giày trẻ mới biết điMàu sắc: Nhiều màuHọa tiết: NơChất liệu phần trên: CottonDanh mục sản phẩm: Xăng đanĐộ tuổi phù hợp: 0-18 thángDành cho mùa: Mùa hèGiới tính phù hợp: NữĐộ dày:
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
**West Ham United Football Club** là một câu lạc bộ bóng đá chuyên nghiệp Anh đặt trụ sở tại vùng phía đông thành phố Luân Đôn, thủ đô nước Anh. West Ham United đã 3
**Mùa giải 2020-21** sẽ là mùa giải thứ 129 của Liverpool F.C. và là mùa giải thứ 58 liên tiếp của họ trong giải đấu hàng đầu của bóng đá Anh. Ngoài giải quốc nội,
**Câu lạc bộ bóng đá Norwich City** (còn gọi là The Canaries hoặc City) là một câu lạc bộ bóng đá chuyên nghiệp có trụ sở tại Norwich, Norfolk, Anh. Câu lạc bộ được thành
**Câu lạc bộ bóng đá Ebbsfleet United** là một câu lạc bộ bóng đá Anh đến từ Northfleet, Kent, thi đấu ở National League South, cấp độ 6 của bóng đá Anh. Sân nhà của
**Mùa giải 2018–19** là mùa giải thứ 127 của Liverpool và là mùa giải thứ 57 liên tiếp của họ ở giải đấu hàng đầu của bóng đá Anh. Đây cũng là mùa giải thứ
**Câu lạc bộ bóng đá Southampton** (_Southampton Football Club_) là một đội bóng đá Anh, có biệt danh The Saints, có trụ sở tại thành phố Southampton, Hampshire. Câu lạc bộ đang thi đấu tại
**Câu lạc bộ bóng đá Plymouth Argyle** là một câu lạc bộ bóng đá chuyên nghiệp đến từ thành phố Plymouth, Devon, Anh. Kể từ mùa giải 2020-21, đội sẽ thi đấu tại League One,
thumb|upright|[[Ryan Giggs, Cầu thủ thi đấu nhiều trận nhất cho Manchester United]] nhỏ|[[Wayne Rooney, người dẫn đầu danh sách ghi bàn cho Manchester United với 253 bàn thắng.]] Manchester United Football Club là một câu
Mùa giải 2010-11 là mùa giải thứu 19 của Manchester United F.C. tại Giải bóng đá Ngoại hạng Anh, và là mùa giải thứ 36 liên tiếp câu lạc bộ thi đấu tại giải đấu