2009-12-16 33 views
7

Nơi tốt để tìm hiểu về các tính năng C++ 0x mới là gì? Tôi hiểu rằng họ có thể chưa hoàn thành xong nhưng sẽ rất tuyệt khi bắt đầu. Ngoài ra, những gì các trình biên dịch hiện đang hỗ trợ chúng?Tìm hiểu về các tính năng của C++ 0x

+0

Sao chép một phần: http://stackoverflow.com/questions/200237/where-can-i-learn-mor e-about-c0x. Nó không nói về sự hỗ trợ của trình biên dịch. – Naveen

Trả lời

11

Cách dễ dàng và thú vị để tìm hiểu về nó là xem C++0x Overview Google Techtalk. Một nguồn tốt khác là của Bjarne Stroutstrup C++0x FAQ, bao gồm một phần lớn các tính năng mới.

0

Không phải là một trùng lặp nhưng bạn có thể nhận được một số câu trả lời here Có cả các liên kết đến các dự thảo và một danh sách các trình biên dịch được thực hiện C++ [0 | 1] x tính năng

0

Bạn chắc chắn nên biết về nhóm làm việc chính thức trang web cho ISO/IEC JTC1/SC22/WG21. Điều này có thông tin ủy ban, vì vậy nó chứa các tài liệu chính thức đang được phát triển. Tuy nhiên, nó không nhất thiết phải là nơi tốt nhất để tìm hiểu về các ý tưởng nền đằng sau những ý tưởng gợi ý khác nhau cho C++ 0x.

Một địa điểm khác để xem là nhóm tin tức comp.std.c++; điều này thường có các cuộc thảo luận bí truyền về sự tàn phá các tính năng có thể có.

0

Điều này không thực sự về các tính năng ngôn ngữ nhưng bạn có thể muốn xem TR1. Đó là một đặc điểm kỹ thuật của các thư viện mà hầu hết các likley sẽ biến nó thành C++ 0x.

Có triển khai thực tế cho nó để bạn có thể chơi với nó ngay bây giờ (ví dụ: VC++ implementation của Microsoft).

3

Đối với VC++ 2010, đây là danh sách những thứ sẽ có ở đó.

Ngôn ngữ (một số trong số này là ở VC2008 đã như mở rộng ngôn ngữ):

  • lambdas
  • static_assert
  • autodecltype tài liệu tham khảo
  • rvalue (T&&)
  • nullptr
  • extern template (lưu ý: không export)
  • long long
  • không gian cần thiết giữa bế mạc > trong các mẫu lồng nhau (ví dụ vector<vector<int>> là hợp pháp)

Libraries:

  • <stdint.h>/<cstdint> và tất cả các typedefs trong (cuối cùng)
  • std::unique_ptr, std::shared_ptrstd::weak_ptr
  • std::forward_list
  • std::tuple và những thứ liên quan! (ví dụ: tie, get ...)
  • <system_error>
  • <type_index>

KHÔNG là gì đó:

  • danh sách initializer (tò mò đủ, tiêu đề <initializer_list> là có và có chứa các loại tương ứng, nhưng có vẻ là không có hỗ trợ ngôn ngữ cho nó trong bản beta 2)
  • Các mẫu có thể biến đổi
  • constexpr
  • phạm vi dựa trên for (mặc dù ngôn ngữ mở rộng for each, mà chủ yếu là giống nhau, vẫn còn)
  • thống nhất khởi cú pháp {}
  • chức năng thay thế cú pháp (mà mimicks lambdas)
  • đoàn constructor
  • cùng trình khởi tạo trường thành viên trực tuyến
  • [[override]] (nhưng override vẫn là tiện ích mở rộng ngôn ngữ)
  • =default=delete về thành viên
  • enum class
  • using cho loại bí danh, và mẫu using
  • char16_tchar32_t, và xâu tương ứng
  • xâu liệu và người dùng định nghĩa
  • sizeof trên dụ các trường không có đối tượng ví dụ
  • std::thread và bạn bè
+0

Một liên kết đến nguồn sẽ là tuyệt vời! – csl

+0

http://msdn.microsoft.com/en-us/library/dd465215(VS.100).aspx bao gồm các tính năng ngôn ngữ. Ngoài ra còn có một loạt các bài đăng trên blog, mặc dù chúng hơi lỗi thời ngay bây giờ (ví dụ: họ không yêu cầu hỗ trợ 'nullptr', ngay cả khi nó hiện có): http://blogs.msdn.com/vcblog/archive/2008/10 /28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue- reference-c-0x-features-in-vc10-part-2.aspx http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part -3.aspx –

+0

Đối với thư viện, tôi không thể tìm thấy bất kỳ tài liệu xác định nào đề cập đến điều này. Tôi đã biên soạn danh sách trên bằng cách xem xét những gì được cung cấp trong bản cài đặt bản beta 2 VS2010 của tôi. Cũng lưu ý rằng danh sách ở trên không bao gồm các tính năng thư viện đã có trong TR1, và đơn giản được chuyển từ 'std :: tr1 ::' sang 'std ::' cho C++ 0x (VC2010 hỗ trợ các tính năng như vậy trong cả hai không gian tên). –

3

Để được hỗ trợ về trình biên dịch, bạn có thể xem tại đây: C++0xCompilerSupport.

Trình biên dịch:

GIẤY (S)
HP acc
EDG eccp
gcc
Intel C++
MSVC
IBM XLC++
Sun C++
C++ Builder 2009/10

Các vấn đề liên quan