Aktywne Wpisy
SmutnoMi +2
#kryptowaluty #gielda #inwestowanie #pytanie
Czy znacie kogoś, kto realnie zarobił na krypto?
I nie:
1. Nie chodzi mi o kolege kolegi którego ojca brat został milionerem, tylko o osobę którą znacie w realu i w miare ufacie.
Czy znacie kogoś, kto realnie zarobił na krypto?
I nie:
1. Nie chodzi mi o kolege kolegi którego ojca brat został milionerem, tylko o osobę którą znacie w realu i w miare ufacie.

Kalifat +2
Kto tu ma pierwszeństwo?
Czerwony ma puścić niebieskiego mimo że niebieskie jedzie wewnętrznym pasem i czerwony ma go z lewej strony?
Jakoś dziwnie zaprojektowali to rondo xD
#prawojazdy
#kiciochpyta
Czerwony ma puścić niebieskiego mimo że niebieskie jedzie wewnętrznym pasem i czerwony ma go z lewej strony?
Jakoś dziwnie zaprojektowali to rondo xD
#prawojazdy
#kiciochpyta
źródło: image_picker_99903BE2-D11E-4FEC-BB35-E7F25E9C4554-96155-00001D448AA3AE94
Pobierz



Wariant pod spodem ma wartość oznaczającą który wariant jest aktywny i odpowiednią ilość miejsca na przechowanie dowolnego wariantu tj. zależną od największego wariantu.
sizeof == 9to ta struktura będzie zajmowała zawsze co najmniej 9 bajtów.pragma pack może zrobić tyle:
* posortować pola według rozmiaru. Pola o rozmiarze
8, 2 , 4, 1lepiej posortować do8, 4, 2, 1, dzięki czemu nie musisz mieć8, 2, (padding 2),Odpowiadając na pytanie op @Mannequeen
pragma pack wokoło struktury która zawiera std::variant jest bezpieczne, sama zawartość std::variant nie będzie naruszona przez pakowanie, variant będzie traktowany jak każdy inny element struktury.
@Nady93: wiem, że Rust tak robi. Go też chce, ale się ociąga. Języki z rodzinny C tak robią głównie dlatego, że legacy i ktoś uznał, że trzymanie się kolejności podanej przez użytkownika ma sens.
@Saly: Obiecałem, żonie że będę miły dzisiaj więc tak łagodnie rzecz ujmując wielką nieprawdę piszesz koledze @Mannequeen Żaden język, który ma stabilne ABI nie przestawia kolejność pól w strukturach. A C i C++
@Nady93: Nie w C i C++, bo standard tego wymaga. Inne (nowsze) języki mają taką możliwość.
@zetisdead z bardzo prostego powodu to będzie niebezpieczne - bo alignment może się rozjechać.
@BeginEnd: stabilne ABI jest cechą implementacji a nie języka. C++ ma stabilne ABI, bo Linux przez swoją tradycję (dynamiczne linkowanie) tego wymaga, inaczej wszystko musiałoby być kompilowane ze źródeł. Rust nie ma takiego problemu, bo tam dynamiczne linkowanie to ciekawostka a nie norma a jak chcesz mieć stabilne ABI to używaj tego z C.
Nie wiem jak jest
@Saly
@Hauleth: Mówienie, że w C++ kompilator nie przestawia data memberów też nie jest do końca precyzyjne. Do C++23 kompilator musiał tylko szanować porządek deklaracji w ramach jednego access specifier,