• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy da się wywołać za pomocą std::invoke funkcję z argumentami domyslymi?

0 głosów
191 wizyt
pytanie zadane 25 listopada 2018 w C i C++ przez RafalS VIP (122,820 p.)

Czemu to nie działa?

#include <iostream>
#include <functional>
void f(int a = 0) {}
int main()
{
	std::invoke(f);
}

1 odpowiedź

+1 głos
odpowiedź 25 listopada 2018 przez monika90 Pasjonat (22,940 p.)
wybrane 25 listopada 2018 przez RafalS
 
Najlepsza

Wewnątrz invoke twoja funkcja to tylko referencja do void (int), jej wywołanie wymaga jednego argumentu. Argumenty domyślne nie są częścią typu funkcji. Zatem bezpośrednio się nie da, ale można użyć lambdy

std::invoke([]{ f(); });

 

Podobne pytania

0 głosów
2 odpowiedzi 290 wizyt
pytanie zadane 24 września 2019 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
0 głosów
1 odpowiedź 354 wizyt
pytanie zadane 5 października 2020 w Python przez Dzango111 Użytkownik (670 p.)
0 głosów
1 odpowiedź 538 wizyt

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...