Lỗi biên soạn C++ khi bạn kết hợp variadic mẫu và chức năng của bạn

Triệu chứng

Khi bạn cố gắng tuyên bố variadic chức năng mẫu bạn lớp mẫu, trình biên soạn C++ sẽ trả về thông báo lỗi thay vì chấp nhận mã. Ví dụ: khi bạn thực hiện tuyên bố sau:

template<typename T>
struct B { };

template<typename... Types>
struct C { };

template<typename... Types, typename U>
void f(C<Types...>, B<U>)
{
}

template<typename T>
class A {
	template<typename... Types, typename U>
	friend void f(C<Types...>, B<U>);
};

int main()
{
    f(C<int>{}, B<int>{});
    A<int> a{};
};

Bạn có thể nhận được thông báo lỗi sau:

lỗi C2783: 'hiệu f (C < loại... >, B < U >)': không có thể suy ra mẫu đối số 'U'

Nguyên nhân

Nguyên nhân là trình biên soạn C++ không phù hợp với tuyên bố về chức năng tuyên bố hiện có một người bạn.

Giải pháp

Bản cập nhật này có sẵn từ Trung Tâm tải xuống của Microsoft.

Trung tâm Tải xuống của Microsoft

Để biết thêm thông tin về cách tải xuống tệp hỗ trợ của Microsoft, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức của Microsoft:

119591 Cách tải xuống các tệp hỗ trợ của Microsoft từ dịch vụ trực tuyến

Microsoft đã quét vi-rút tệp này. Microsoft đã sử dụng phần mềm phát hiện vi-rút mới nhất đã có vào ngày tệp được đăng. Tệp được lưu trữ trên máy chủ được tăng cường bảo mật giúp ngăn chặn mọi thay đổi trái phép đối với tệp.

Điều kiện tiên quyết

Hotfix này yêu cầu Visual Studio 2015 Update 3.

Thông tin khởi động lại

Bạn có thể phải khởi động lại máy tính sau khi áp dụng cập nhật nóng này.

Thông tin thay thế

Hotfix này không thay thế bất kỳ hotfix nào phát hành trước đó.

Thông tin về tệp

Phiên bản tiếng Anh của cập nhật nóng này có các thuộc tính tệp (hoặc thuộc tính tệp mới hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Quốc tế Phối hợp (UTC). Khi bạn xem thông tin về tệp, ngày và giờ được chuyển đổi thành giờ địa phương. Để tìm sự khác nhau giữa UTC và giờ địa phương, sử dụng tab Múi Giờ trong mục Ngày và Giờ trong Pa-nen điều khiển.

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Nền tảng

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 SÁNG

X86

Giải pháp

Để khắc phục sự cố này, không tuyên bố variadic chức năng mẫu bạn lớp mẫu.

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×