Dường như trong C++ và D, các ngôn ngữ được biên dịch tĩnh và trong đó lập trình meta mẫu là một kỹ thuật phổ biến, có một số lượng đáng quan ngại về bloat instantiation mẫu. Dường như với tôi giống như hầu hết là một mối quan tâm lý thuyết, ngoại trừ trên các hệ thống nhúng rất hạn chế về tài nguyên. Bên ngoài không gian được nhúng, tôi chưa nghe một ví dụ về ai đó có thể chứng minh rằng đó là một vấn đề trong thực tế.Khi nào thì mẫu instantiation bloat quan trọng trong thực tế?
bất cứ ai có thể cung cấp một ví dụ ngoài hệ thống nhúng nghiêm trọng tài nguyên hạn chế về nơi mẫu instantiation sưng lên mattered trong thực tế và có đo lường được, thực tế đáng kể tác động tiêu cực?
Điều đó không hoàn toàn đúng - trình biên dịch có thể tạo mã giống hệt nhau cho các hàm khác nhau 'f (int int)' và 'f (unsigned int)', và probabl y sẽ không nhận thấy rằng chúng giống hệt nhau. Trong khi viết nó bằng tay bạn sẽ chỉ nhận được một trong những chức năng đó. –
Lý tưởng nhất là bạn nên sử dụng trình biên dịch/trình liên kết nhận dạng và loại bỏ mã lắp ráp được tạo trùng lặp. Visual Studio làm điều đó (COMDAT gấp). – vividos
Điều này đúng nếu bạn chỉ sử dụng mẫu làm generics. Nhưng điều đó không đúng nếu bạn đang thực hiện lập trình meta bằng các mẫu. Các mẫu được sử dụng trong lập trình meta có thể tạo ra tất cả các loại kiểu trung gian điên rồ mà bạn không thực sự cần. Tôi nghĩ rằng boost :: generator parser tinh thần có thể là một ví dụ tốt về điều này. – Baxissimo