Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Objawy

Podczas deklarowania funkcji zmienne szablonu jako znajomego szablonu klasy, kompilator języka C++ zwróci komunikat o błędzie zamiast akceptować kod. Na przykład po wykonaniu następującą deklarację:

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{};
};

Może zostać wyświetlony następujący komunikat o błędzie:

Błąd C2783: "void f (C < typów... >, < U > B)": nie można wywnioskować, argument szablonu dla 'U'

Przyczyna

Przyczyną jest to, że kompilator języka C++ nie może dopasować deklaracji funkcji zaprzyjaźnionej do istniejącej deklaracji.

Rozwiązanie

Ta aktualizacja jest dostępna w Centrum pobierania firmy Microsoft.

Centrum pobierania firmy Microsoft

Aby uzyskać więcej informacji dotyczących sposobu pobierania plików pomocy technicznej firmy Microsoft, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

119591 Jak uzyskać pliki pomocy technicznej Microsoft w usługach online

Firma Microsoft przeskanowała plik w poszukiwaniu wirusów. Firma Microsoft użyła najnowszego oprogramowania do wykrywania wirusów, które było dostępne w dniu opublikowania pliku. Plik jest przechowywany na serwerach o podwyższonych zabezpieczeniach, które uniemożliwiają nieautoryzowane zmiany w pliku.

Wymagania wstępne

Ta poprawka wymaga programu Visual Studio 2015 aktualizacji 3.

Informacje dotyczące ponownego uruchamiania

Może być konieczne ponowne uruchomienie komputera po zastosowaniu tej poprawki.

Informacje o zastępowaniu

Ta poprawka nie zastępuje żadnych wcześniej wydanych poprawek.

Informacje o plikach

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.

Nazwa pliku

Wersja pliku

Rozmiar pliku

Data

Godzina

Platforma

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 AM

X86

Obejście problemu

Aby obejść ten problem, nie deklarować zmienne funkcji szablonu jako znajomego szablonu klasy.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×