Thư viện chuẩn không phân biệt các biến vị ngữ và biến vị ngữ của các thuật toán chung. Ví dụ: std::sort()
trông giống như:Tại sao phân biệt các biến vị ngữ và các biến vị ngữ không phải là biến vị ngữ cho các thuật toán chung?
template< class RandomIt >
void sort(RandomIt first, RandomIt last);
template< class RandomIt, class Compare >
void sort(RandomIt first, RandomIt last, Compare comp);
Có vấn đề gì trong việc chỉ viết những điều sau đây không?
template< class RandomIt, class Compare = std::less<void>>
void sort(RandomIt first, RandomIt last, Compare comp = Compare{});
Không có điều nào như đối số mẫu mặc định cho mẫu chức năng trong C++ 03. –
@ T.C. Vì vậy, giả sử chúng tôi chỉ thiết kế lại toàn bộ điều, nên hình thức thứ hai được ưa thích? – Lingxi
@ T.C. Tôi tin rằng điều đối số mẫu mặc định thực sự là một câu trả lời. – Angew