2012-02-29 32 views
6

Có thể là một câu hỏi lạ, nhưng có sẵn bất kỳ phần mềm nào, được cung cấp một chuỗi mã C++ 11, xuất phát tất cả các loại biến tự động và viết lại mã với những loại có nguồn gốc đó? Và cũng cho các danh sách khởi tạo?Tự động viết lại từ khóa tự động C++ 11 thành các kiểu có nguồn gốc

Lý do là chúng tôi muốn cung cấp phiên bản tương thích ngược của mã của chúng tôi (không phải C++ 11), chủ yếu cho tính di động với osx. Danh sách tự động nhập và khởi tạo là các tính năng chúng tôi sử dụng nhiều nhất khi chúng làm cho mã dễ đọc hơn nhiều, nhưng việc xóa chúng bằng tay là không có gì. Vì đây là thực tế những gì trình biên dịch làm với các biến tự động gõ, nó có vẻ không quá xa vời?

+1

libclang để giải cứu? – sehe

+0

Bạn có thể xây dựng @sehe? Clang có làm gì đó trong thời trang đó không? FYI, clang 3.0 không hỗ trợ đủ tính năng trong C++ 11 để biên dịch mã của chúng tôi. –

+1

@BroesDeCat: Ông ta gợi ý rằng bạn sử dụng thư viện trình biên dịch của Clang để biên dịch mã của bạn, và sau đó viết nó ra, với 'tự động' được chuyển đổi thành kiểu suy luận của họ. –

Trả lời

2

Nếu bạn có thể sử dụng Boost, bạn có thể xem boost::typeof. Nó sẽ không thực hiện chính xác những gì auto làm, nhưng, trong hầu hết trường hợp, nó có thể được tự động thay thế thông qua một tìm kiếm regex-với-chụp.

1

Âm thanh như một tính năng cho trình cắm thêm cấu trúc lại cho Eclipse CDT (Tôi thực sự đã đề xuất cho sinh viên của mình một thời gian trước). Có thể là thuật ngữ tiếp theo tôi có thể tìm thấy một nhóm để tạo ra như vậy. Tuy nhiên, thông tin của Eclipse CDT có thể không đủ tốt để luôn xác định đúng nội dung.

Đối với một số danh sách initilizer, ví dụ: những danh sách điền vector, tăng :: chỉ định có thể thay thế. Cơ sở hạ tầng đối tượng giả Mockator của chúng tôi sử dụng chúng cho C++ 03 thay vì các danh sách khởi tạo trong C++ 11.

Bạn không nên sợ thư viện Tăng cường, ít nhất không phải là những thư viện chỉ đến tiêu đề. Những người có bộ phận libary riêng biệt có thể là một rắc rối nhỏ để thiết lập một cách chính xác (tình hình xây dựng được cải thiện gần đây).

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