Tôi đã thấy biểu hiện này trong trang 189 của cuốn sách "hiệu quả Modern C++":"typename =" có nghĩa là gì trong các thông số mẫu?
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
Tôi chỉ tự hỏi những gì hiện phần "typename =
" có ý nghĩa. Nó chắc chắn trông giống như một đối số mặc định cho một tham số mẫu. Nhưng bạn không cần một cái gì đó như "typename some_name = ...
" trong một đối số mặc định? Không có tên cho đối số mẫu thứ hai và tôi không thấy đối số mẫu thứ hai được sử dụng trong trường hợp này.
P.S. Khi tôi tìm kiếm trên google (hoặc bất kỳ công cụ tìm kiếm nào khác) cho câu trả lời, dấu bằng luôn bị loại bỏ và điều này chỉ làm cho việc tìm kiếm câu trả lời gần như không thể ...
Cảm ơn rất nhiều. Tôi chỉ không biết có thể có các tham số mẫu chưa đặt tên. Bây giờ mọi thứ đều có ý nghĩa. – qft
Để làm rõ cụm từ này: 'nó sẽ tạo ra lỗi trình biên dịch nếu điều kiện không được đáp ứng': Có công bằng khi nói trình kích hoạt này SFINAE (" Lỗi thay thế không phải là lỗi ") và hàm tạo không được xác định? (Tôi hơi mới với SFINAE.) – kevinarpe