Có cách nào để thay thế thành ngữ Xmacro bằng các tính năng C++ 11 và tốt nhất là không sử dụng bộ tiền xử lý? Tôi đã nghĩ rằng các mẫu tuple có thể được sử dụng, nhưng tôi vẫn đang cố gắng mò mẫm những công việc đó.Có một mẫu/constexpr/C++ 11 cách thay thế X-macro không?
Trả lời
XMacros là công cụ chung để thực hiện một loạt các sự kiện rộng. Nhiều trong số đó (chẳng hạn như tạo danh sách các điều tra viên, chuỗi, v.v.) vượt quá khả năng của các mẫu bất kỳ.
Có thể một số trường hợp bạn có thể tìm cách thay thế bằng mẫu. Nhưng chắc chắn không phải tất cả.
Tôi đã mong đợi đó là trường hợp. "Một số trường hợp" mà tôi đang sử dụng tại thời điểm này và muốn thay thế bằng các mẫu là việc xáo trộn các enums. – Naddiseo
@Naddiseo: Đối với trường hợp đó, tuyệt đối không. Các mẫu không có khả năng chuyển đổi mã thông báo thành biểu diễn chuỗi của mã thông báo đó, đó là những gì cần thiết. –
C++ 11 thực sự có thể sử dụng một số khả năng xử lý và khả năng phản chiếu chuỗi biên dịch mạnh mẽ hơn. Một cái gì đó như 'std :: enum_name
+1 để cảnh báo tôi về thực tế là kỹ thuật này có tên. Tôi đã nhìn thấy nó trước khi trong mã và tôi đã sử dụng nó. Nhưng tôi không biết nó được đặt tên là gì đó. –