10

Chế độ C++ 0x trong VC++ 2010 có tắt công tắc không? Tôi đang làm việc trên một dự án mà phải biên dịch trên trình biên dịch không 0x, và do đó tôi muốn biên dịch chống lại các tiêu chuẩn hiện hành. (Ngay cả khi không có các tính năng mới đang được sử dụng trực tiếp, vẫn còn có sự tinh tế làm cho C++ 0x dễ dàng hơn).Tắt tính năng C++ 0x trong VC 2010?

Công tắc gần nhất tôi tìm được là Configuration Properties -> C/C++ -> Language -> Disable Language Extensions nhưng không phải vậy.

Trả lời

13

Không, tiện ích mở rộng ngôn ngữ thường là các bổ sung cụ thể của nhà cung cấp không chuẩn.

Tính năng C++ 0X: Không có cách nào trực tiếp để tắt các tính năng này. Một cách giải quyết khác là không sử dụng chúng. Tuy nhiên, lưu ý rằng vẫn sẽ có sự khác biệt rõ rệt về hiệu năng trên các phiên bản của thời gian chạy VC. VC10 thực hiện các ngữ nghĩa di chuyển và thư viện chuẩn (ví dụ: std::string) sử dụng các tính năng này một cách hào phóng.

Một sự thỏa hiệp hợp lý theo ý kiến ​​của tôi là chuyển về VS2008. Các phiên bản VS gần đây đã nổi tiếng là lỗi (cho đến nay, theo kinh nghiệm của tôi) và chưa bao giờ làm việc theo cách mà họ không có Gói Dịch vụ. VS2008 là khá ổn định hiện nay, mà không có bất kỳ những tính năng C++ 0x và nên phù hợp với hóa đơn của bạn.

+5

Bạn cũng có thể chuyển về sử dụng trình biên dịch VS2008 trong VS2010 IDE cũng như trong các thiết lập dự án. – Andy