2009-07-13 48 views

Trả lời

10

Thuật ngữ "mẫu chức năng" đề cập đến một loại mẫu. Thuật ngữ "hàm mẫu" đôi khi được sử dụng để có nghĩa là cùng một điều, và đôi khi có nghĩa là một hàm được khởi tạo từ một mẫu hàm. Sự mơ hồ này là tốt nhất nên tránh bằng cách sử dụng "mẫu chức năng" cho cái cũ và cái gì đó như "ví dụ mẫu hàm" hoặc "thể hiện của một mẫu hàm" cho cái sau. Lưu ý rằng một mẫu hàm không phải là một hàm. Sự phân biệt tương tự áp dụng cho "mẫu lớp" so với "lớp mẫu".

Từ this FAQ.

+1

Đồng ý với các điểm chung, tuy nhiên, tôi không đồng ý với các câu hỏi thường gặp rằng "dụ của một mẫu chức năng "là thuật ngữ để sử dụng. IMHO, "chuyên môn mẫu chức năng" gần hơn với thuật ngữ chuẩn. Ngoài ra còn có câu hỏi về những gì để gọi các hàm và các lớp không phải là các khuôn mẫu mà là các thành viên của một mẫu lớp. Họ có rất nhiều hành vi chung với các mẫu chức năng nhưng không đúng khi gọi chúng là "các mẫu chức năng". –

+0

Tôi có ấn tượng rằng khi mọi người nói "chuyên môn hóa mẫu", chúng có nghĩa là chuyên môn hóa một phần hoặc toàn diện rõ ràng (rõ ràng là luôn luôn đầy đủ trong trường hợp mẫu hàm), thay vì hàm/lớp mà trình biên dịch tạo ra từ định nghĩa một mẫu. Tôi thường thấy "instantiation" được sử dụng cho sau này. Liệu các tiêu chuẩn tham khảo sau này như là một chuyên ngành quá? –

+0

IMHO một tên như "A < int >" là một chuyên môn cho dù bối cảnh của nó là gì. Nó có thể được sử dụng như là một phần của một sự khởi đầu rõ ràng hoặc một chuyên môn rõ ràng hoặc một phần. Nhưng tôi cũng nghĩ rằng đó là một chuyên môn mà nó được sử dụng để khai báo một đối tượng, ví dụ: "A * a;". Re the standard, 14.2/1 mô tả cách chuyên môn hóa mẫu (14.7) có thể được tham chiếu theo thuật ngữ ngữ pháp 'template-id' và 14.7 bao gồm các instant instant ngầm định. –

1

Mẫu chức năng là thuật ngữ chính xác (mẫu để khởi tạo các hàm từ).

Chức năng mẫu là một từ đồng nghĩa thông tục.

Vì vậy, không có sự khác biệt nào.

Các vấn đề liên quan