Wpis z mikrobloga

Jak zrobić w C++ (podkreślam jak najwięcej) tablice, kontener z funkcjami które możemy dodawać w stylu insert lub push_back ?Wiem że sama tablica w C była przez wskażniki do zrealizowania (często podawana przy bibliotekach dynamicznych)

#cpp #programowanie
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sylwke3100: Jeśli nie zaleƶy Ci aƶ tak na wydajności, to zamiast wskaźników na funkcję polecam funktory, które mogą trzymać stan. Wtedy będziesz miał

std::vector>
  • Odpowiedz
@KrzaQ2: Funktory są wbrew pozorom wydajniejsze niż raw pointery na funkcje. ;) A wskaźnik na funkcję konwertuje się do

std::function
, więc to najlepsze rozwiązanie jeśli mowa o C++. Raw pointery, szczególnie na funkcje, od C++11 powinny odejść do lamusa.
  • Odpowiedz
@Rincewind: To juƶ zaleƶy gdzie, ale akurat

std::function
ma nieomijalny virtual call ze względu na type erasure*.

*Przepraszam za ponglish, ale myślę, ƶe próba tłumaczenia by była jeszcze gorsza.
  • Odpowiedz