Hầu hết các trình biên dịch already support C++0x. Bạn đã bắt đầu sử dụng C++ 0x hay bạn đang chờ định nghĩa của x? Tôi phải làm một số refactoring mã của tôi; sao tôi nên bắt đầu sử dụng các tính năng mới?Bạn đã bắt đầu sử dụng C++ 0x chưa?
Trả lời
C++ 0x chưa phải là tiêu chuẩn hoàn chỉnh. Có khả năng sẽ có nhiều sửa đổi trước khi một tiêu chuẩn được chấp nhận quốc tế được phát hành. Vì vậy, tất cả đều phụ thuộc, bạn đang viết mã cho cái gì? Nếu đó là cho một công việc giao tôi sẽ dính với thường xuyên C + +, chờ đợi cho các tiêu chuẩn được thiết lập và cung cấp cho cộng đồng lập trình thời gian cần để điều chỉnh. Không refactor mã bạn thực sự cần phải thực hiện, nó có thể cung cấp cho bạn một loot của rắc rối.
Tuy nhiên, tôi nghĩ C++ 0x tuyệt vời để chơi xung quanh và cũng không thể làm tổn thương làm quen với cú pháp khi 0x được chấp nhận trên toàn cầu.
Kế hoạch này dành cho tiêu chuẩn được phát hành vào khoảng cuối năm nay và không có nhiều bản sửa đổi. Họ đã có một dự thảo, và nó đã được sửa đổi một hoặc hai lần. Cuối năm nay, họ sẽ đưa nó vào một cuộc bỏ phiếu trong ISO, và dự kiến sẽ vượt qua ở đó mà không có bất kỳ vấn đề gì. – jalf
Tôi sẽ ngừng viết mã sản xuất cho đến khi '0x + y, trong đó y là khi chúng hoạt động các lỗi trong trình biên dịch và đưa nó vào tuân thủ chuẩn (bất kể tiêu chuẩn nào có thể).
Nhưng để phát triển? Tôi sử dụng nó để chơi xung quanh, viết project euler, v.v. Tôi cũng sử dụng nó trên các bản trình bày và nhóm tin.
Tôi sẽ bắt đầu sử dụng nó khi Visual Studio FULLY hỗ trợ. Ngay bây giờ VS10 chỉ hỗ trợ một vài tính năng.
Tôi cũng nghĩ như vậy. Nhưng để chờ đợi để thực hiện đầy đủ có thể mất một thời gian tốt (ý kiến của tôi là điều này sẽ mất nhiều năm và có thể sẽ có một số tính năng hiếm khi được sử dụng nhỏ sẽ không bao giờ được thực hiện trong một số trình biên dịch!). Vì vậy, tôi sẽ sử dụng tất cả các tính năng có sẵn trong tất cả các trình biên dịch có liên quan. (Unfourtunatly chúng tôi phải sử dụng GCC 3.4.5 cho phát triển nhúng của chúng tôi: - ((() – mmmmmmmm
Tôi đã bắt đầu sử dụng nullptr
, sử dụng #define nullptr 0
cho những trình biên dịch đó (nghĩa là hầu hết) chưa hỗ trợ.
+1: Tôi hiện đang nghĩ đến việc làm tương tự. – mmmmmmmm
Làm tương tự. –
Chúng tôi vẫn đang trong quá trình chuyển đổi từ VS6 sang VS 2005. Có lẽ chúng tôi sẽ không sử dụng các trình biên dịch C++ 0x độc quyền cho công việc mới cho đến cuối năm 201x.
Có rất ít trình biên dịch hỗ trợ điều gì đó. Trên thực tế VS chỉ hỗ trợ các thư viện TR1, gcc hỗ trợ một số tính năng như variadic templatres, rvalue, auto và một số tính năng khác. Trình biên dịch Intel có một số.
Tôi chủ yếu bắt đầu sử dụng các mẫu variadic như:
#ifdef HAvE_VARIADIC
template<typename... Args>
void format(std::string,Args... args);
#else
template<typename T1>
void format(std::string,T1 p1);
template<typename T1,typename T2,>
void format(std::string,T1 p1,T2 p2);
...
template<typename T1,typename T2,...,typename T10>
void format(std::string,T1 p1,T2 p2,..., T10 p10);
#endif
Chúng tôi đã chơi với C++ 0x rất nhiều và bây giờ khi gcc hỗ trợ một số tính năng chúng tôi sẽ sử dụng chúng ngay khi có sẵn. Lý do rất đơn giản - với từ khóa tự động bạn lưu rất nhiều cách gõ, với các tham chiếu rvalue bạn nhận được hiệu suất và với các danh sách khởi tạo và các mẫu variadic ít đánh máy hơn và nhiều mã dễ đọc hơn.
Trên thực tế, mục tiêu chính của tiêu chuẩn C++ 0x cũng là mục tiêu của chúng tôi, vì chúng tôi sẽ có lợi thế cho đối thủ cạnh tranh với các tính năng này. Đó là lý do tại sao chúng tôi sẽ sử dụng chúng mà không cần chờ đợi gì cả. Tất nhiên nếu bạn cần khả năng tương thích đa nền tảng, bước này là không thể chấp nhận được. Trong trường hợp bạn không quan tâm đến nó, sử dụng nó ngay lập tức và bạn chỉ có thể giành chiến thắng.
Có, tôi đã sử dụng C++ 0x và phát hành thư viện mã nguồn mở. Tất cả các dự án nguồn mở C++ trong tương lai của tôi sẽ được viết bằng biến thể này.Sau khi sử dụng các tham số mẫu variadic và decltype/auto tôi không thể quay trở lại!
- 1. Đã đến lúc bắt đầu phát triển với HTML5 chưa?
- 2. Cách kiểm tra Backbone.history đã được bắt đầu chưa?
- 3. Bạn đã sử dụng GPGPU thành công chưa?
- 4. Bạn đã sử dụng bộ đệm ẩn của Intersystems chưa? Kinh nghiệm của bạn là gì?
- 5. Sử dụng __thread bằng C++ 0x
- 6. Bạn đã sử dụng động từ kiểm soát backlacking Perl 5.10 trong regex chưa?
- 7. Khi nào bạn nên bắt đầu sử dụng Memcached?
- 8. Rails 3 beta 3 - đã đến lúc bắt đầu sử dụng tính năng này cho các dự án mới chưa?
- 9. Ứng dụng của tôi đã được bắt đầu bằng tay chưa?
- 10. Tại sao địa chỉ bộ nhớ bắt đầu bằng 0x?
- 11. Làm thế nào để bạn sử dụng các chuỗi thô C++ 0x với GCC 4.5?
- 12. C++ 0x Lambda overhead
- 13. Có phải C++ enums đã ký hoặc chưa ký?
- 14. Bắt đầu bằng C
- 15. Bạn đã từng sử dụng PhantomReference trong bất kỳ dự án nào chưa?
- 16. Bạn đã thử sử dụng MVC cho mã máy khách GWT chưa?
- 17. Bỏ qua Danh sách - đã từng sử dụng chúng chưa?
- 18. Bạn đã thay thế makefiles bằng tập lệnh ruby chưa?
- 19. Cách sử dụng chuỗi C++ 0x trong Android NDK?
- 20. Mẫu tự động thủ công (không sử dụng C++ 0x)
- 21. Selenium + PHPUnit: sessionId không được rỗng; đã bắt đầu phiên này chưa?
- 22. Bạn đã bao giờ sử dụng "biến thể hiện lớp" trong bất kỳ mã Ruby nào của bạn chưa?
- 23. CMake clang và C++ 0x
- 24. C++ 0x luồng
- 25. Zend Framework: Bắt đầu sử dụng SQLite
- 26. Kafka đã sẵn sàng để sử dụng sản xuất chưa?
- 27. bắt đầu gdb sử dụng một pid
- 28. Bạn đã thử Quy trình làm việc của Spring chưa?
- 29. Tìm các lớp chưa sử dụng trong ứng dụng C#
- 30. Bắt đầu Outlook với C#
Không, chưa có BẤT K comp trình biên dịch nào hỗ trợ đầy đủ C++ 0x. Một số trình biên dịch đã thực hiện một phần SUBSET của các tính năng C++ 0x, nhưng không phải gần như tất cả. Ngoài ra, tiêu chuẩn thậm chí còn chưa hoàn thành và có thể thay đổi. –
Họ đang hết thời gian trước khi họ sẽ phải đổi tên nó C++ 1x. –
Nó sẽ là C++ 0a nếu nó bị trì hoãn –