Aktywne Wpisy

GangKobry +132

Melkovva_ +24
Dziękuję wam za to że jesteście ❤️🫶🏼
@JoeGlodomor @ibleedforyou @serniczekwiedensky @XXX_Boris_Gromow_24cm_XXX @bibi__ @Podroznik87 @szatanEK666
@oficjalniemartwa @PanTuNieMieszkasz @sadzik37 @zssrauamaiw @jan-plastrek @GF91 @PodniebnyMurzyn @KladzSie @vieniasn @Miteora @SaintWykopek @BaldWisdom @cocojambo210 @BlackenedBlue @Jacolosek @leonid_bialkow @vvn81 @KarnetNaGlony @JakisGlupiKon @Jestem_Tutaj @AlexandraWhite @wielbiciel_storm_iron @szyderczy_szczur @Satan_Was_a_Babyboomer @wybryk_natury @
@JoeGlodomor @ibleedforyou @serniczekwiedensky @XXX_Boris_Gromow_24cm_XXX @bibi__ @Podroznik87 @szatanEK666
@oficjalniemartwa @PanTuNieMieszkasz @sadzik37 @zssrauamaiw @jan-plastrek @GF91 @PodniebnyMurzyn @KladzSie @vieniasn @Miteora @SaintWykopek @BaldWisdom @cocojambo210 @BlackenedBlue @Jacolosek @leonid_bialkow @vvn81 @KarnetNaGlony @JakisGlupiKon @Jestem_Tutaj @AlexandraWhite @wielbiciel_storm_iron @szyderczy_szczur @Satan_Was_a_Babyboomer @wybryk_natury @





https://github.com/CRYTEK-CRYENGINE/CRYENGINE/tree/release/Code/CryEngine/CryCommon/CryMath
Mirki, goście tutaj widzę pakują implementacje funkcji do plików .h, miejscami tylko robią costam.h i costamImpl.h. Jak parę lat temu uczyłem się c++ to zawsze dzieliło się na pliki h i cpp. To co oni stosują tutaj to jakaś znana w świecie c++ konwencja?
Według tej odpowiedzi na Stack Overflow czasami można, ale trzeba wiedzieć co się robi.
1. Po co dzielimy na .h (/ .hpp) i .cpp?
Po to, że *include-ując* za każdym razem cały kod (nagłówki + implementacja), czas kompilacji byłby bardzo długi i jeśli zmienił byś coś w implementacji a nie nagłówku/API klasy/struktury/funkcji, to ta klasa jak i zależne od niej musiały by zostać przebudowane od nowa. Gdy
Pamiętajcie, że CryEngine dopiero od niedawna jest open-source. Czasami plik nagłówkowy zdradza zbyt dużo na temat implementacji klasy, szczegóły, które chcemy ukryć. Wtedy stosuje się tzw. PIMPL idiom, czyli ukrywanie implementacji w oddzielnej strukturze. Możliwe, że to nie zostało jeszcze zmienione albo nawet nikt nie ma zamiaru tego zmieniać, pomimo tego, że projekt jest już open-source i nie ma
Czas kompilacji? Przebudowywanie od nowa? C#, java i multum innych języków jakoś sobie świetnie radzi bez tego poronionego pomyslu. Są tez precompiled headers, które może nie są remedium na wszelkie zło, ale złe też nie są.
Nawet w przypadku template'ów są extern template'y i dopóki nie piszesz biblioteki, sa fajne.
Optymalizacje - j.w. W przypadku biblioteki zgoda, w przypadku własnego kodu - lepiej zdać się
Komentarz usunięty przez autora
@sasik520: I dlatego do C# wprowadzono partial classes?
@AferaZaAfera: srutututu srutututu. W takim stanie, jak teraz, to pewnie, z c++ h/cpp się nie usunie. Ale język powinien do tego dążyć, moim zdaniem. I dlaczego niby porównanie do c# czy innego języka jest złe? C++ od samego początku czerpie całymi garściami z
@sasik520: Masz rację, wydaje Ci się.
A w wypadku templatów to jest to właściwie niezbędne