Có nhiều nơi tăng cường nơi tôi nhìn thấy một lớp học được tạo khuôn mẫu và không thể không nghĩ tại sao người viết nó sử dụng các mẫu.Tại sao tăng quá nhiều templated?
Ví dụ: lớp mutex (es). Tất cả các khái niệm mutex được thực hiện như là các khuôn mẫu mà người ta có thể chỉ đơn giản là tạo ra một vài lớp cơ sở hoặc các lớp trừu tượng với một giao diện phù hợp với khái niệm.
chỉnh sửa sau khi trả lời: Tôi đã nghĩ về chi phí của các chức năng ảo nhưng đôi khi không đáng để cho đi rất ít hình phạt về hiệu suất để hiểu rõ hơn? Tôi có nghĩa là đôi khi (đặc biệt là với tăng) nó thực sự khó hiểu mã templated và giải mã lỗi trình biên dịch như là kết quả của việc lạm dụng các mẫu.
sẽ bea câu hỏi tốt cho anh chàng này: http://stackoverflow.com/users/5597/anthony-williams (tác giả của boost.thread): p –
Triết lý chính của cộng đồng C++ là "Bạn chỉ nhận được những gì bạn yêu cầu". Dự án Boost đang cố gắng, giống như STL, theo triết lý đó bằng cách thiết kế tất cả các thư viện bằng cách sử dụng các mẫu. Có một chi phí mặc dù, như bạn đề cập đến: sự hiểu biết đôi khi bị. Nếu bạn muốn một thư viện, bạn có thể dễ dàng hiểu hơn, có lẽ bạn nên có một cái nhìn tại thư viện Qt. Nó chứa nhiều những gì Boost làm, và nhiều hơn nữa! Theo tôi, thiết kế của Qt cho phép phát triển quy mô lớn C++, thứ gì đó Boost hoàn toàn thiếu. –