template <size_t size, typename ...Params>
void doStuff(Params...) {
}
template <>
void doStuff<size_t(1), int, bool>(int, bool) {
}
int main(int, char**) {
doStuff<1,int,bool>(1, false);
return 0;
}
Điều này không biên dịch, khai báo doStuff thứ hai cung cấp cho tôi error: template-id ‘doStuff<1u, int, bool>’ for ‘void doStuff(int, bool)’ does not match any template declaration
nhưng nó khớp rõ ràng với khai báo đầu tiên với các đối số mẫu variadic.Chuyên môn về mẫu với các mẫu variadic
Làm thế nào để chuyên mẫu variadic?
Tôi sử dụng gcc 4.5.2. Cảm ơn câu trả lời của bạn (Tôi đang sử dụng quá tải mẫu thay vì bây giờ). – coyotte508
tương tự với 4.6.1, tức là ở trên không được hỗ trợ trong phiên bản đó ... – Nim
Hoặc bạn có thể bọc hàm trong một cấu trúc 'template <..> Do {static void Stuff (..) {}};'. –