Nie wiecie czy już ogarnięto bit-fields na tyle aby można było zadeklarować np. strukturę z bit-fields z konkretnym endianess?
Dlaczego to takie ważne? Otóż w sieciach teleinformatycznych wszystkie protokoły są bigendian a urządzenia które podpinamy do tej sieci mogą mieć procesory zarówno bigendian jak i littleendian. Miło było by przy tworzeniu aplikacji zamiast składać zawartość ramek bit po bicie (za pomocą operacji bitowych) po prostu zadeklarować strukturę bitową i określić ją jako
Z językiem programowania jest jak z systemem operacyjnym. Np Windows się nadaje tylko do pasjansa, a C++ tam gdzie wymagana jest dobra szybkość względem kosztu wytworzenia.
C++ to proteza na protezie. Nie nadaje się do biznesowych aplikacji. Nie widzę zastosowania dla tego języka. Wszystkie części aplikacji, które wymagają wysokiej wydajności i optymalizacji warto napisać w zwykłym C. Reszta aplikacji w normalnych językach, tzn. C#/Java itp.
@Programista15k: Jakie ficzery C++ produkują zbugowany kod? Int nie jest po to, żeby mieć stały rozmiar, tylko żeby być szybki. Zwykle ma wielkość natywnie wspieraną przez daną architekturę. Jak chcesz stały rozmiar, to masz mnóstwo typów które go gwarantują, np. int32_t.
@lewilny_lewak W C++ nie ma typów generycznych, tylko szablony. Te drugie są instancjonowane już podczas kompilacji, co dużo zmienia. Używałem ich sporo. Na przykład napisałem algorytm, który sortuje zmienne po adresach w trakcie kompilacji. Nadal twierdzę, że da się to zapisać czytelnie. Może nie aż tak, jak zwykły kod, ale to wciąż głównie kwestia nadania dobrych nazw, sensownego formatowania i pogrupowania funkcji tak, żeby to było intuicyjne. Myślę, że Twoim problemem
Komentarze (200)
najlepsze
Dlaczego to takie ważne? Otóż w sieciach teleinformatycznych wszystkie protokoły są bigendian a urządzenia które podpinamy do tej sieci mogą mieć procesory zarówno bigendian jak i littleendian. Miło było by przy tworzeniu aplikacji zamiast składać zawartość ramek bit po bicie (za pomocą operacji bitowych) po prostu zadeklarować strukturę bitową i określić ją jako
PS. Uwazam, ze Linus ma racje dlatego powinnismy utrzymac C, pominac C++/C# i skupic sie na nowych jezykach jak Go, Elixir, Swift, Ruby itp.
Int nie jest po to, żeby mieć stały rozmiar, tylko żeby być szybki. Zwykle ma wielkość natywnie wspieraną przez daną architekturę. Jak chcesz stały rozmiar, to masz mnóstwo typów które go gwarantują, np. int32_t.
Myślę, że Twoim problemem