Wpis z mikrobloga

Z ciekawości, gdzie tak bardzo przydaje się refleksja?


@cordianss: parsowanie do struktur danych to IMO must have w normalnym współczesnym języku
  • Odpowiedz
Constexpr w nowym C++ to chyba mój faworyt tego co cpp 17


@SkyrFan2000: a niby czemu faworyt. Przecież to zwykły const tylko z tą restrykcją że ma być zainicjalizowany w czasie kompilacji
  • Odpowiedz
chodzi mi o constexpr w kontekście funkcji, czyli o ewaluacje funkcji w trakcie kompilacji.


@SkyrFan2000: szczerzę to średnio jestem w stanie wyobrazić jakiś sensowny use-case na to. Skoro funkcje można ewaluować w czasie kompilacji to po co ją w ogóle tworzyć? Nie lepiej od razu zahardcodować wynik?
  • Odpowiedz
  • 0
Nie lepiej od razu zahardcodować wynik?


@walokid: Więcej pracy? Tak samo możesz napisać każdy możliwy typ vectora, ale po co, skoro istnieją templatki.
Już nie wspominając że możesz używać constexpr do pilnowania czy api jest poprawnie wywołane, i wielu wielu innych rzeczy których domyślnie język nie wspiera.
  • Odpowiedz
  • 1
@walokid: Dam Ci przykład nad którym teraz pracuje.
Mam rożne klasy w C++ które mogą, ale nie muszą, mieć różne callbacki. Np. OnAttach, BeforeDelete, OnEvent etc.
I teraz mógłbym oczywiście ręcznie wszystko łączyć. Ale dzięki conceptom/SFINAE i if constexpr mogę po prostu zdefiniować jedną funkcje która tworzy obiekt i jeżeli funkcja istnieje to ją po prostu dodaje do listy callbacków do wywołania przy evencie.
A jak chcę rozszerzyć klasę, to
  • Odpowiedz