2015-07-05 29 views
27

Clang có nice page mô tả trạng thái dự án w.r.t. Hỗ trợ tính năng C++ 1z/C++ 17 (và C++ 11 và C++ 14, cùng một trang).Trạng thái của hỗ trợ C++ 1z/C++ 17 trong gcc là gì?

g ++ có a page regarding C++14 features, nhưng tôi không thể tìm thấy bất kỳ điều gì về C++ 17/C++ 1z. Điều đó có đang được thực hiện nhưng không có trên web? Đối với phiên bản 5.0?

+1

C++ 17 đang ở trạng thái phát triển sớm và, như tôi biết, chưa có hỗ trợ cho các tính năng của GCC. Ngay cả tiếng kêu vang có sự hỗ trợ hạn chế và thử nghiệm cho nó (http://clang.llvm.org/cxx_status.html#cxx17). Mặt khác, một số tiến bộ đang được thực hiện trong GCC, xem: https://patchwork.ozlabs.org/patch/370773/ hoặc https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options. html. – Goofy

+3

[libstdC++ 201z] (https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z) – inf

Trả lời

7

Đã có một số hỗ trợ; Hai tóm tắt sau đây được định hướng trong danh sách Clang của:

được hỗ trợ (tính đến ngày 05 tháng 7 năm 2015):

  • auto cho các thông số chức năng được hỗ trợ since 4.9. Tính năng này hiện được coi là tiện ích mở rộng nhưng được đưa vào đề xuất khái niệm và được gọi là "chức năng chung".
  • trigraphs đang bị bỏ qua bởi mặc định since 5.1.0
  • typename cho thông số mẫu template since 5.1.0
  • quy tắc khấu trừ mới cho trực tiếp-list-khởi since 5.1.0
  • static_assert mà không có một thông điệp in HEAD
  • u8 nhân vật literals in HEAD
  • Các thuộc tính cho không gian tên hoặc điều tra viên in HEAD

Không được hỗ trợ (kể từ ngày 5 tháng 7 năm 2015; với các liên kết đến một cách sử dụng ví dụ hợp lệ):

Đối với tình hình thực hiện các đề xuất trong thư viện libstdC++, the corresponding manual có một danh sách.

+0

"tự động cho tham số chức năng" Đây là gì? Tôi không thể tìm thấy điều này trong danh sách [C++ 17] (https://en.wikipedia.org/wiki/C%2B%2B17). – Suma

+0

Trigraphs không thực sự là một vấn đề. Nếu bạn muốn chúng, bạn luôn có thể định nghĩa chúng là một phần của mã hóa nguồn của hệ thống. –

+1

@Suma: "tự động cho tham số chức năng" là C++ 14: https: // stackoverflow.com/questions/17233547/how-does-generic-lambda-work-in-c14 (trong khi ví dụ được hiển thị có thể là phần mở rộng gcc). – Thomas

4

Ngoài ra còn có một bảng đẹp tại cppreference.com liệt kê các tính năng được hỗ trợ cho một số trình biên dịch.

http://en.cppreference.com/w/cpp/compiler_support

+0

Điều này thực sự xuất hiện để được cập nhật và toàn diện hơn so với các trang tính năng được duy trì bởi các nhà cung cấp trình biên dịch thực tế (!!!). –

+0

Trên thực tế, trang MSVC là khá tốt, nó chỉ khó tìm: https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance –

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