Pamiętam jak kiedyś chciałem udzielać korków z informatyki i programowania.

Zgłosiła się pierwsza dziewczyna, zakres: podstawy programowania w C++.
Dziewczyna tydzień przed egzaminem przyszła do mnie i myślała, że zdążymy ogarnąć to czego oni się uczyli przez cały semestr.
Jedyne co umiała to:
- zacząć plik c++ od #include
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@trevoz przesadzasz z tymi "dziesiątkami", są osoby, które się po prostu do tego nie nadaja. Obstawiam, że nie wyjaśnił jej nikt o co chodzi w typowo algorytmicznym myśleniu i stąd tego typu problemy i pytania.
  • Odpowiedz
@trevoz na przyszłość jakbyś chciał uczyć to zacznij od schematów blokowych a potem tłumaczenia podstawy prostego programu, opisania go wspólnie co jest czym i po co. Tak wyglądają pierwsze zajęcia informatyki i takie pytania się nie powinny pojawiać już potem
  • Odpowiedz
Czy tylko dla mnie język C++17/20 jest dużo bardziej skomplikowany od Rusta?

Niby wiele elementów w nowszych wersjach służy uproszeniu kodowania, ale i tak patrząc na niektóre otwartoźródłowe projekty w C++ powoduje to, że część kodu jest napisana przy użyciu różnych stylów(niekiedy używany jest unique_ptr a niekiedy zwykły etc.).

#rustlang #cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qarmin: to jest prawda. Niestety każdy projekt w C++ używa własnych konwencji i bibliotek. Do tego większość dużych firm (Google: Abseil, Facebook: folly) mają własne biblioteki standardowe, bo ta z C++ jest stara/niereformowalna/za mała. Rust ma tą zaletę, że jest młody więc nie trafimy na bibliotekę z lat 90 + dostarcza podstawowe building blocki. Każdy w Ruscie wie, że do opcjonalnych wartości używa się Opt czy read only stringi przepycha
  • Odpowiedz
@qarmin: No jest. C++ ma 40lat bagażu, zachowuje kompatybilność wsteczną i ma filozofie by pozwalać na wszystko programiście nawet jak ten chce się z---------ć.

Rust ma przemyślany design, wychodzi z słusznego załozenia że większość programistów to idioci i nawet taki feature jak domyślne argumenty funkcji czy przeciążanie to w ich rękach niebezpieczne narzędzie, wymusza dobre praktyki przez statyczną analizę kodu i zazwyczaj jest jest sposób na zrobienie czegoś poprawnie. O
  • Odpowiedz
Zastanawiam się, czy robi się taką paranoję, żeby rozdzielać funkcje kopiujące/przesuwające elementy gdzieś do kontenera lub do zwykłego pola struktury na osobne funkcje dla prostych typów (np. int), które przyjmują parametr zawsze przez kopię i na funkcje, które przyjmują "cięższe" obiekty przez forwarding reference? Jak patrzyłem na prototyp np. vector::push_back() to czegoś takiego chyba tam nie ma.

  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Feargan: bez sensu, jak masz konstruktor w headerze to i tak optymalizator zoptymalizuje konstruktor w miejscu wywołania. To co zyskujesz to zwiększony czas kompilacji. Jako programista C++ powinieneś patrzeć na ten aspekt, bo łatwo takim # include zarazić cały codebase
  • Odpowiedz
@Feargan: Ano tak. Z prymitywami nie ma się co tak szczypać, kopiowanie 64bitowego wskaźnika na 64 bitowej architekturze nie musi być wolniejsze od kopiowania 32 bitowego inta.
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zerknąłby mi ktoś na kod i powiedział jak wywołać z szablonu wynik w mainie? https://pastebin.com/9F8FvM5G
Link do szablonu. Poprosiłabym bez niemiłych komentarzy, bo nie mam pojęcia o C++(ʘʘ)

Próbowałam czegoś w
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Iribell: Trochę pogrzebałem, jeśli rozumiem o co ci chodzi to działa coś typu

std::array b = {rational(1), rational(2), rational(3)};
ale poza tym inny problem zauważyłem w funkcji rational& operator/= - wymuszasz tam żeby licznik nie był zerem, a zgaduję, że chodziło o mianownik
  • Odpowiedz
@mad_disinhibition: ucz się tylko Javy. C++ jest trudniejszy i bardziej upierdliwy pod względem toolingu. A jak to musi być C++ to najlepiej naucz się najpierw tego języka a potem Javy.
  • Odpowiedz
Cześć,

Mam program, który posiada część real-time i non-real-time. Używam systemu czasu rzeczywistego Xenomai (pod #linux). Sam Xenomai ma wrappery dołączane linkerem, które nadpisują wszystkie klasyczne funkcje linuxowe. Mój program składa się z wielu bibliotek z czego jedna powinna mieć owrappowane funkcje. Niestety dołączenie flag linkera dla tej biblioteki powoduje owrappowanie funkcji całego projektu. Co robię źle, że nie zostaje to rozdzielone?

CMake dla tej biblioteki: https://pastebin.com/qsFwmBgV
Część CMake projektu - dołączenie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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

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