Mały kod: https://pastebin.com/y8tNpFtA

Nie wiem czy tak się da? Tworzę shared pointer, czyszczę listę i zamykam funkcję więc ostatni pointer ginie... czyli i "podmiot liryczny" ginie, ale w którym momencie? Czy coś może pójść nie tak? W programie to nie do końca tak wygląda, ale sytuacja ta sama.

#programowanie #cpp
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

, a więc self ginie dopiero po return?


@s_theCapt: tak, ale po tym usunięciu ptr dalej odpalają się destruktory zmiennych lokalnych będących przed ptr. Czy to jest legalne: szczerze nie wiem, na pewno jest to brzydkie. Przykładowo wystarczy, że ktoś bez dogłebnęgo czytania kodu doda jakiś mutex przy użyciu std::lock_guard na samym początku funkcji.


@lionbest: tak, nie doczytałem
  • Odpowiedz
mireczki Wy moje kochane spod tagu #cpp
W jaki sposób najprościej zwizualizować wynik działania algorytmu mrówkowego, żeby wyglądał jak na zdjęciu? muszę przenieść kod z #python na c++, bo coś się prowadzącemu nie podoba. Problem w tym, że nigdy zbytnio w tym języku nie pisałem. O ile nie miałem kłopotów w przepisaniu tego, żeby wypluwało wynik w konsoli, tak jeśli chodzi o wizualizacje, to jestem w dupie. Mogę
shiningsky - mireczki Wy moje kochane spod tagu #cpp
W jaki sposób najprościej zwizu...

źródło: comment_1620220531OljliMfx1aOmNv8MhytcYR.jpg

Pobierz
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siema programistyczne świry, mam problem z zapisaniem drzewa binarnego do pliku w #cpp. Robię projekt na studia, w którym piszę program do kompresji plików tekstowych za pomocą kodowania Huffmana i jestem w kropce xD Do skompresowanego pliku muszę dołączyć drzewo, aby poprawnie zdekodować plik, ale nie wiem jak to zrobić w taki sposób, aby można było jednoznacznie je odtworzyć przy dekompresji. Psycha mi siada, bo w internecie znalazłem same
EgzeQTroll - Siema programistyczne świry, mam problem z zapisaniem drzewa binarnego d...

źródło: comment_1620201756CexEEclcmzvWsXJZHNc8xY.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czołem ceplusplosowe świry!

Świetne Cpp Weekly na temat stabilności ABI - link tutaj

Uprzejmie przypominam że Rust ma niestabilne ABI i może sobie je łamać do woli co release'a ku chwale wydajności i Wielkiej Polski ()

#programowanie #cpp
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej, maly update z mojej strony ( ͡° ͜ʖ ͡°)

Troche doedukowalem sie, faktycznie lepiej jest korzystac wylacznie z zestawu typow kompatybilnych z C - nie bawimy sie wtedy w roznice miedzy layoutem plikow .exe i .dll. Do tego nie bedziemy przywiazani do konkretnych kompilatorow (exec i dll moga wtedy byc kompilowane pod innymi kompilatorami - dobrze kminie?). Sam Core Guidelines tak zaleca, i brzmi to moim zdaniem
  • Odpowiedz
Czolem wszystkim milujacym #cpp! ()

Zaczalem ostatnio dostosowywac swoja aplikacje pod system #windows i spotkala mnie niemala niespodzianka ()

Pisze sobie w sposob obiektowy tak, ze na kazda klase przysluguje jeden plik zrodlowy i jeden naglowkowy. Kiedy w pliku zrodlowym potrzebuje zaincludowac , nie ma problemu - wszystko dziala. Kiedy natomiast potrzebuje zaincludowac ten pliczek
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

hej,
jak myślicie, czy zaprosi mnie ktoś na staż w C++ bez wykształcenia wyższego? Całkiem pewnie się w tym języku czuję i na co dzień bazgram w cpp17 (tak, tak, optional i string_view), powiem co robi std::move, czemu nie używać new i delete, a nawet pokażę na przykładzie czym jest sfinae, także myślę, że podstawy do roboty są.

co do projektów - to jakaś apka w Qt5 i jeszcze dochodzi jedna też
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 3
@1SunnyBunny1: nie chce Ci psuć zapału ale branża C++ działa całkowicie inaczej nie webowka i można się w nią wbić tylko przez duże korpo gdzie będziesz utrzymywał stary kod z dziadkami którzy są toksyczni. Na takie staże biorą tylko studentów, bo w nich jest to wycelowane. Niemniej jednak próbować możesz
  • Odpowiedz
no dobra, to będę po prostu próbował. Jak się nie uda to najwyżej wyjadę do holandii na magazyn zasuwać jak niewolnik z gothic 3 :D

@Passer93 jest to zwykłe rzutowanie - zmienia typ argumentu na referencję do r-wartości. Samo w sobie wywołane nic nie robi (no-op).
  • Odpowiedz
Hejka opy z pod tagu #cpp #c++ #c14 #cplusplus. W ramach hoby postanowieniem poprzyswajac trochę c++ . I utknalem , pisze funkcje ktora odpytuje serwery api zroznymi naglowakami . I chalem wyslac te naglowki do funkcji . Jednak natknalem sie na problem zmiennej ilosci parametrow. Jak moge wyslac nieokreslona liczbe parametrow struct albo stringow do funkcji w jakis zgrabny sposob . Chce unikana ciezkich bibliotek
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Passer93: () O dzieki czlowiek czego sie uczy :) przyznam sie bez bicia ze ostatni raz dotykalem c++ 10 lat temu. Jedno pytnako jedyny sposob by upewnic sie ze dana metoda nie tworzy kopi obiektu to sprawdzenie w dokumentacji czy tez wszystko co nie jest wskaznikiem referencja jest kopia ?

. Ps. Strzeliłem sobie w stope doczytałem ze mikrokontrollery nie oblssguja STL .
  • Odpowiedz
@dzaku: Wystarczy sprawdzić nagłówek funkcji, większość IDE Ci pokaże jak najedziesz myszką albo klikniesz z CTRL. Jak bierze przez referencje to nie kopiuje.

No, STLa w embedded się nie używa xD This is sparta kurła ! Wciąż możesz napisać tak jakby własny kontener który będzie trzymał wskaźniki do stringów. Jeśli chcesz przetrzymywać ciągi znaków które są z góry zdefiniowane to nie musisz nic alokować, ciągi znaków są wkompilowane w program, możesz
  • Odpowiedz
#programowanie #cpp #naukaprogramowania

Cześć, aktualnie jestem w trakcie pisania pewnej aplikacji i zależy mi na (przynajmniej podstawowym) bezpieczeństwie danych, które będę przechowywać po stronie klienta (nie ma możliwości trzymania tego na serwerze). Dlatego zastanawiam się czy istnieje jakiś sprawdzony sposób którym z poziomu usermode na prawach administratora można sprawdzić wszystkie procesy pod kątem tego czy któryś z nich czyta pamięć procesu mojej aplikacji przy użyciu ReadProcessMemory
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LazyInitializationException: Wiem, że zawsze jest możliwość, choćby kernel, ale chce zablokować przynajmniej jakieś cheatengine i inne badziewia dla laików. Jest jakiś sprawdzony sposób na zrobienie takiego hooka żeby nie wykrywało apki jako potencjalne zagrożenie przez choćby defendera?
  • Odpowiedz
#programowanie #cpp #naukaprogramowania
Chciałem odpalić c++20 i potestować jak to wygląda bo jestem ciekawy
mój protip jak ktoś chce to robić: róbcie to pod wodą żeby nikt nie widział płaczu, ani nie słyszał krzyku
próbuje narazie skompilować moduł clangiem, i kiepsko mi to idzie, chętnie się dowiem jakie flagi powinienem użyć
  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć,

Zaimplementowałem kolejkę thread-safe, standardowo jeden thread do niej pisze, drugi czyta i parsuje dane. Kłopot polega na tym, że thread, który zapisuje czasami musi zbyt długo czekać na zwolnienie kolejki przez co są gubione porcje danych, bo blokowane jest odbieranie. Czy zapis do kolejki odebranej porcji danych powinienem puszczać w osobnych taskach, żeby nie blokować odbierania? Czy jest jakiś mądrzejszy sposób?

#programowanie #programista15k #cpp
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval:
1. jak już wspomniano, przechowuj całe paczki bajtów, to będzie je łatwo wyekstrachować np. jezeli będą pod jakimś uniqueptr. myk robimy move na uniqueptr i jest cała paczka dostępna.

2. ten lock przy back() i front() to pchanie się w gips, robisz locka przy pobraniu adresu, a potem już droga wolna do modyfikacji konteneru przez kogokolwiek i zostajesz ze smieciowym adresem

3. te unique_locki bez std::locka afaik
  • Odpowiedz
@card_man: @RedveKoronny: tak dla jasności c++2a/gnu++2a było gdy jeszcze nie było pełnego standardu C++20 zaimplementowanego w kompilatorze, w nowych wersjach powinno już się używać c++20/gnu++20

c++20 od gnu++20 różni się tylko tym, że w tym drugim są dodatkowe extensions niezgodne ze standardem

@RedveKoronny: nie wiem jak działa VSCode, ale samo CMake konfiguruje się poprzez CMakeLists.txt, w którym można dodać na przyklad add_compile_options(${CMAKE_CXX_FLAGS} -std=c++20), ale jeśli
  • Odpowiedz
@qarmin:

1. Słowo "Rust" się odmienia w języku polskim, więc nie bójmy się używać "Rusta"
2. Well, technicznie to tak, ale nie do końca, bo jeden błąd wynikał ze złego wymagania kolejności w zmiennych atomowych (nie za bardzo do uniknięcia w żadnym języku, bo to błąd logiczny), a drugi używał unsafe więc omijał pewne testy narzucone przez Rusta.
  • Odpowiedz
@IwanNiegrozny: @qarmin: Jeżeli chodzi o Rusta to był tylko jeden problem i to w bibliotece do synchronizacji, więc nie nazwałbym tego bugiem w kodzie firefoxa.
Niestety masz rację, jak chce się coś zoptymalizować to albo zewnętrzna biblioteka z błędami, albo unsafe i własne błędy.
  • Odpowiedz