Tôi vừa xem this really nice talkĐá cứng: C++ Phát triển bởi Boris Jabes. Trong phần của cuộc nói chuyện liên quan đến bậc cao Generic Lập trình ông nói rằng sau đây là một ví dụ về một hàm đó là chung chung hơn là liên quan đến kiểu trả về của nó và dẫn đến ít mẫu chức năng quá tảiCách sử dụng khai sáng của C++ 11 decltype
template <typename Func>
auto deduce(const Func & f) -> decltype(f())
{..}
này Tuy nhiên có thể được thực hiện sử dụng mẫu cú pháp đơn giản như sau
template <typename Func>
Func deduce(const Func & f)
{..}
vì vậy tôi đoán ví dụ chọn không thực sự cho thấy sức mạnh độc đáo của decltype
. Bất kỳ ai có thể đưa ra ví dụ về việc sử dụng làm sáng tỏ hơn của decltype
?
No. Ví dụ đầu tiên có nghĩa là '' 'deduce (f)' '' trả về loại kết quả '' 'Func'''. Ví dụ thứ hai có nghĩa là '' 'suy ra (f)' '' trả về '' 'Func'''. Bạn có thấy sự khác biệt? –
Aah, xin lỗi tôi đã bỏ lỡ thêm '()' bên trong đối số cho 'decltype'. Lỗi của tôi. –