Mam funkcji szablonu:Co jest nie tak z odrzutami typu ulotnego w funkcjach szablonu?
template <typename T>
inline void Acquire_Store(volatile T* ptr, T value) {
// ...
}
Kiedy próbuję wywołać ją tak:
volatile Node* node;
Acquire_Store(&node, static_cast<Node*>(nullptr));
obu g ++, dzyń ++ kompilatory powiedzieć coś takiego:
wywnioskować sprzeczne typy dla parametru 'T' ('lotny Lista :: Node *' vs. 'Lista :: Node *')
Co to jest poprawny sposób, aby wywołać tę funkcję szablonu?
Aktualizacja.
Teraz nie jestem pewien typ node
„s - Może powinienem go zmienić na Node* volatile node;
?
Chcę zmienna node
być niestabilne, ale nie spiczasty przedmiot.
@ abyss.7 wykonując 'static_cast' zmuszasz kompilator do myślenia, że' T' to dwa różne typy w tym samym czasie :) - prawdopodobnie będzie to możliwe na komputerach kwantowych z 2113 roku, ale nie obecnie :) – zaufi
@zaufi może 'static_cast' to jest zła rzecz - ale nie wiem, jak wykonać prawidłowe połączenie - o to właśnie chodzi. –
czego dokładnie chcesz? oczywiście musisz zmienić sygnaturę lub stronę połączenia. – zaufi