Artykuł “C++17 – nowy, miłościwie panujący nam standard C++” z Programisty 66

Dzięki uprzejmości redakcji Programisty, mogę podzielić się tym artykułem.

C++17 – nowy, miłościwie panujący nam standard C++

Trochę ponad rok temu, w numerze 10/2016 magazynu, zapowiedziany został nadchodzący standard języka. Od tego czasu komitet standaryzacyjny zdążył się jeszcze spotkać i dokonać pewnych zmian.

Finalny kształt C++17 poznaliśmy po marcowym spotkaniu komisji standaryzacyjnej w miejscowości Kona na Hawajach, gdy szkic standardu został poddany głosowaniu organów narodowych (ang. national bodies). 6. września głosowanie zostało zakończone jednogłośną akceptacją [1], co pozwoliło pominąć drugie głosowanie i przejść bezpośrednio do publikacji. Organizacja ISO opublikowała C++17 w grudniu 2017 jako ISO/IEC 14882:2017 [2]. Wedle relacji członków komitetu 9 miesięcy od zakończenia prac oznacza bardzo szybką publikację…

ZWI #4 – jak wylosować elementy bez powtórzeń

Losowanie bez powtórzeń jest chyba jednym z najczęstszych zadań dla początkujących, zarówno uczących się samodzielnie, jak i na studiach. Często przejawia się w zadaniu typu “utwórz program losujący liczby w Lotto”. Równie często spotykam kod z wydajnością O(evil), którego powstydziłbym się nawet w najbezczelniejszym Lawful Evil – mieszanina randów, srandów, sprawdzania w pętli O(n3) czy wartość jest już znaleziona, alokacji pamięci za pomocą new[] itd.

Jest to w dużej mierze pokłosie sposobu nauczania C++. W tym poście przedstawię proste, czytelne i wydajne sposoby uzyskania tego samego efektu.