[Visual C++] Błąd C2893: Nie powiodła się specjalizacja szablonu funkcji 'unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr>)'
Ostatnio zmodyfikowano 2017-03-28 17:27
Kinexity Temat założony przez niniejszego użytkownika |
[Visual C++] Błąd C2893: Nie powiodła się specjalizacja szablonu funkcji 'unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr>)' » 2017-03-28 01:08:18 Witam wszystkich! Mam problem z moim kodem. Nie chce on przyjąć obiektu jako argumentu funkcji wywoływanej w oddzielnym wątku. Kod funkcji: void C_prime_multithread::prime_threads() { for( int i = 0; i < 4; i++ ) { primes[ i ] = thread( threads_handler, this ); } for( int i = 0; i < 4; i++ ) { primes[ i ].join(); } }
void threads_handler( C_prime_multithread & this_obj ) { this_obj.is_prime( 1 ); }
Fragment nagłówka: friend void threads_handler( C_prime_multithread & this_obj );
Możliwe, że to tylko głupie przeoczenie z mojej strony, ale nie rozumiem co jest źle. |
|
Monika90 |
» 2017-03-28 10:50:20 Parametrem funkcji threads_handler jest referencja do obiektu, a próbujesz wywołać ją ze wskaźnikiem. Zmień parametr na wskaźnik.
Prawdopodobnie niepotrzebnie funkcja ta jest zaprzyjaźniona, będzie prościej jeśli będzie składnikiem klasy. |
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2017-03-28 17:27:41 Dzięki! Problem rozwiązany. |
|
« 1 » |