#C++

wszystkie notatki oznaczone etykietą "C++"

Niespójne i mylące konstruktory w std::string

Kiedyś często problemem były niejawne konwersje między typami w C++, które szczególnie uwidaczniały się przy konstruktorach konwersji… Kto by pomyślał, że dziś nadał trywialne błędy można popełnić przez jakieś zaszłości historyczne, usilne zachowanie kompatybilności i brak spójności w definiowaniu konstruktorów, nawet tych w Standardzie ;) Problemy te co jakiś czas są na nowo “odkrywane”, ostatnio powróciły w nieco prześmiewczym kodzie na twitterze: const std::string str = "Modern C++"; std::string s1 { "Modern C++", 3 }; std::string s2 { str, 3 }; std::cout << "S1: " << s1 << "\n"; std::cout << "S2: " << s2 << "\n"; Intuicyjnie mogłoby się wydawać, że obiekty s1 i s2 będą zawierać taką samą zawartość.

Czytaj dalej

Rust okiem programisty C++

Po rozwiązaniu AoC w Ruscie, i jako takiej 25 dniowej codziennej pracy z tym językiem, mogę wreszcie powiedzieć kilka słów na jego temat i podzielić się moimi odczuciami i uwagami, widoczynmi z perspektywyw programisty piszącego głównie w C++. [Z powodu braków czasowych wynikłych z migracją nie udało mi się jeszcze skończyć tego wpisu…]

C++20 nowym standardem!

Tuż przed weekendem, jak podaje Herb Sutter na swoim blogu, oficjalnie C++20 stał się już nowym standardem ISO: On Friday September 4, C++20’s DIS (Draft International Standard) ballot ended, and it passed unanimously. This means that C++20 has now received final technical approval and is done with ISO balloting, and we expect it to be formally published toward the end of 2020 after we finish a final round of ISO editorial work.

Czytaj dalej

WinBounce: Poruszaj oknami na ekranie Windowsa

Gdy szlajając się po Internecie przypadkiem natrafiłem na wpis Juli “Challenge: Write a bouncy window manager” zaświtała mi w głowie myśl, że w sumie to dla zabawy mógłbym zrobić coś podobnego na Windowsa. Postanowiłem wtedy, że w jakiś “Dzień Programisty”, “Prima Aprilis”, czy inny podobny “szajs” spróbuję poruszyć ten temat. Zainspirowany tym pomysłem wczorajszego 1-szego kwietnia udało mi się nadziergać trochę kodu. http://twitter.com/malcompl/status/1245406565139730433 Tak powstał prosty programik (WinBounce) wprawiający w ruch okna na ekranie.

Czytaj dalej

C++20 formalnie (prawie) gotowe...

http://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/ http://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/

Dzień Radia: Eksperymenty z RDA5807M (FM)

Dzisiaj obchodzony jest Światowy Dzień Radia i postanowiłem go jakoś ciekawie uczcić. Do głowy wpadł mi pomysł, że może mógłbym coś poeksperymentować i po prototypować z jakimś prostym radyjkiem. Od czasu mojej poprzedniej zabawy radiowej z wakacyjnym mini-odbiornikiem AM nic konkretnego nie powstało. A planowana wakacyjna wersja prostego odbiornika FM bardziej nadaje się na kolejny jakiś wakacyjno-weekendowy projekt niż na szybką spontaniczną zabawę. Zatem dziś do uczczenia radiowego święta, tak na szybko poeksperymentuję z cyfrowym scalonym odbiornikiem opartym na układzie TEA5767 lub RDA5807M.

Czytaj dalej

Advent of Code 2019

Dałem się przekonać do tegorocznej edycji Adevnt of Code i podjąłem wyzwanie! Zapowiada się ciekawa programistyczno - algorytmiczna zabawa. Mimo, że do tej pory jakoś omijałem takie inicjatywy, to w tym roku trafiłem na tweeta Pawła Łukasika i sobie pomyślałem “czemu nie?”. Zamiast tradycyjnego adwentowego kalendarza z czekoladą - dwa zadania na każdy dzień adwentu, aż do świąt ;) Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

Czytaj dalej

C++17 formalnie (prawie) gotowe...

W marcu tego roku, na spotkaniu komitetu standaryzacyjnego C++ w Kona, technicznie zakończono prace nad nową odsłoną standardu języka C++. Nowy draft DIS (N4660) przesłano do finalnego balotowania przez ISO (ISO ballot) i za 5-6 miesięcy oficjalnie powitamy C++17. Zapewne, prócz drobnych ewentualnych korekt w dokumencie, technicznie nic się nie zmieni, więc nieformalnie takie drafty traktowane są już przez społeczność jako standard. Obecnie ostatnim dostępnym dokumentem jest N4659 (różniący się jedynie formatowaniem od niedostępnego publicznie N4660).

Czytaj dalej

CppCon 2016: wybrane wykłady i prelekcje

W drugiej połowie września odbyła się tegoroczna wielka konferencja dla sympatyków, twórców i użytkowników, czyli programistów, języka C++. Mowa tutaj oczywiście o CppCon-ie, największym evencie na świecie poświęconym C++, organizowanej przez społeczność dla społeczności. http://www.youtube.com/watch?v=ifX-0neqCVc Nie jestem na bieżąco, ale nie dawno~~ wczoraj pojawiła się informacja, że wszystkie wykłady i talki pojawiły się już w formie video na kanale Youtube-owym konferencji. Od pewnego czasu także pojawiały się tweety (#CppCon) z dodawanymi na bieżąco materiami, rozpowszechniane przez różne znane i mniej znane osoby czy organizacje.

Czytaj dalej

Elementy usunięte w C++17

W przyszłym roku prawdopodobnie wejdzie w życie nowa, większa odsłona (tzw. major release) standardu języka C++, czyli C++17. Od dłuższego czasu, odkąd C++14 ujrzało światło dzienne, zacząłem więcej zajmować się reverse engineeringiem (w pracy) oraz (w domu) powróciłem do starego hobby, jakim jest elektronika. Przez co moje programowanie stało się mocno niszowe i sporadyczne, co pociągło za sobą mniejsze zainteresowaniem się tym co dzieje się wokół języka C++ i jego społeczności.

Czytaj dalej