• 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?

42 Warsaw Coding Academy
0 głosów
158 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 239 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ź 250 wizyt
pytanie zadane 5 października 2020 w Python przez Dzango111 Użytkownik (670 p.)
0 głosów
1 odpowiedź 451 wizyt

93,379 zapytań

142,380 odpowiedzi

322,533 komentarzy

62,734 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...