Odpowiedź najlepiej wyjaśni kawałek kodu: int a = 7; // OK int b = 7.2; // OK, niejawna konwersja int c {7}; // OK int d {7.2}; // błąd, niedozwolona niezgodność typów int e = {7}; // OK, chociaż nadmiarowo int f = {7.2}; // błąd, niedozwolona niezgodność typów i nadmiarowy kod Zapis z nawiasami klamrowymi wymusza zgodność typów. Dalej
Deklaracją statycznej asercji jest static_assert(A, S), gdzie A zwraca wynik testu, a S jest komunikatem o błędzie w przypadku zwrócenia przez A wartości false. Dalej
konstruktory klasy powinny wywoływać się kaskadowo, aż do wywołania konstuktora o największej liczbie parametrów
Funktory albo inaczej obiekty funkcyjne posiadają zdefiniowany operator()(...), zwracający wartość logiczną. Są one efektywnie wykorzystywane przez algorytmy. Dalej
Typ map o implementacji drzewa czerwono-czarnego posiada złożoność obliczeniową przeszukiwania, rzędu
Określone typy mogą być alokowane w granicach słów. Zjawisko takie nazywane jest właściwym wyrównaniem (ang. properly aligned). Przykładowo: na maszynie z 32-bitowym typem całkowitym, optymalniej będzie utworzyć strukturę/klasę zawierającą pola: struct Example { int x; // 4 bajty char y; // 1 bajt char z; // 1 bajt }; Wyrównanie nastąpi do 8 bajtów [][][][] [][]oo (2 bajty straty). Pola możemy również ułożyć w następujący sposób: struct Example { char y; // 1 bajt int x; // 4 bajt char z; // 1 bajt }; Wyrównanie nastąpi do 12 bajtów []ooo [][][][] []ooo (6 bajtów straty). Dalej
Standard C++ pozostawia furtkę dla sprzętu stosującego uzupełnienie jedynkowe, a to sprawia zniknięcie jednej wartości. Dalej
www.pauldingcountyareafoundation.net Quiz wiedzy Przyrodnicze ciekawostki - wiesz więcej, niż Ci się wydaje?