Khi lập trình meta C++ hoạt động: có cách nào để làm điều gì đó có thể so sánh được với bất kỳ ngôn ngữ lập trình chức năng nào (ví dụ: Haskell's) hay không?C++/Boost MPL: mã cấu trúc tương tự như vậy Haskell cho phép, ở đâu,
Tôi đang sử dụng Boost :: MPL nhưng muốn có thêm cấu trúc cho các kết nối dài hơn. Chia tách thành nhiều chức năng là tốt nhưng tôi thích cho phép/ở đâu trong một số trường hợp.
Có đến một điểm mà cố gắng bót đi giày nhiều mẫu ma thuật vào C++ ngừng đem lại lợi nhuận rất hữu ích, đặc biệt là khi nói đến khả năng tương thích và bảo trì trong tương lai. Bạn đã cân nhắc viết nhiều mã hơn bằng một ngôn ngữ chức năng nhanh có thể tạo ra các thư viện có thể gọi từ C/C++ không? (OCaml lò xo để tâm trí) – Rook
Không, tôi đã không xem xét điều đó. Tôi đang sử dụng lập trình meta bởi vì tôi cần phải làm một cái gì đó tại thời gian biên dịch, không phải vì tôi muốn viết mã chức năng. Các đoạn mã của tôi không phức tạp lắm. Tôi chỉ nghĩ nếu tôi sử dụng cùng một ứng dụng chức năng ba lần trong một 30-line-metafunction nó sẽ được tốt đẹp để sử dụng một số cấu trúc. – user1034081
Trong C++ 11, bạn có thể thực hiện quá trình biên dịch thời gian với 'constexpr' thay vì các mẫu. – leftaroundabout