Hej.
Możecie polecić jakiś godny uwagi, dobrze zrobiony, przeprowadzony kurs z C++. Fajne ćwiczenia itd. Najlepiej z Coursera bo mam tam konto jeszcze z kilka miesięcy więc chciałem z korzystać z tej okazji.
Kurs dla programisty z ok 2letnim stażem. C++ nie ruszałem, a potrzebować będę w niedalekiej przyszłości w pracy w nowym zespole.

Ten wstępnie sobie patrzyłem:
https://www.coursera.org/specializations/coding-for-everyone
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie jestem zawodowcem, o ile się orientuję, to jednym z większych problemów z C++ jest to, że nie ma kontroli zarządzania pamięcią ani w formie sprawdzenia przy kompilacji ani jako garbage collector. Co stoi na przeszkodzie dodania sprawdzania w czasie kompilacji jak np w Rust? Na przykład w formie opcji, ktoś chce się upewnić to włącza sprawdzenie przy kompilacji, jak nie to zostaje przy starym kompilatorze. Trochę to wydłuży kompilację, ale wydajność
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Goglez: W nowoczesnym C++ problemy z kontrolą pamięci praktycznie nie występują.

Co stoi na przeszkodzie dodania sprawdzania w czasie kompilacji

Nie da się w pełni sprawdzić czegoś, co dzieje się w runtimie. Można jedynie posłużyć się sanitizerami, albo jakimś valgrindem.
  • Odpowiedz
Co stoi na przeszkodzie dodania sprawdzania w czasie kompilacji jak np w Rust?


@Goglez: Niedostatecznie ekspresywny system typów w C++, który nie rozumie pojęcia czasu życia wartości. Musiałbyś robić analizę całego programu a to z kolei nie jest możliwe ze względu na specyficzny sposób budowania projektowe C++ gdzie pliki są kompilowane osobno.
  • Odpowiedz
Hej, chciałbym trochę podziałać z tematami image processing - zarówno klasycznym algorytmicznym jak i znowymi AI'owymi metodami.
W jakim języku najlepiej działać - c++, python czy coś jeszcze innego?
Macie jakieś dobre źródła do rozwoju i nauki ?

#programowanie #python #c #cpp #machinelearning
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej mirki, piszę w czystym C++ gierkę sieciową od zera.. już jakieś 10 lat.( ͡ ͜ʖ ͡)
Podobna do Hotline Miami, ale można strzelać się z kumplami. Wyszła naprawdę grywalna.

Jeśli ktoś jest zainteresowany technikaliami, mogę coś poopowiadać. Szczególnie dumny jestem z architektury sieciowej.
A w ogóle to jest open source i każdy może sobie ją zbudować, nawet na linuxie.

#gamedev #cpp
bob-pager - Hej mirki, piszę w czystym C++ gierkę sieciową  od zera.. już jakieś 10 l...
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 8
@lethaldysfolid: Pisanie od zera ma swoje zalety.

- Łatwiej zrobić architekturę sieciową bazowaną na determinizmie symulacji. W mojej grze możesz mieć 10k+ dynamicznych skrzynek na mapie które będą w pełni zsynchronizowane bez przesyłania się przez sieć - po kablu lecą tylko inputy graczy. Żeby to osiągnąć, musiałem długo grzebać w kodzie silnika fizycznego (głupia kolejność rozwiązywania kontaktów ma znaczenie), a także wymienić wszystkie funkcje matematyczne typu sin/cos/sqrt na te ze
  • Odpowiedz
Chciałem sobie napisać program w C++ wyznaczający jakąś ilość czterocyfrowych kodów PIN, w ramach ćwiczeń na studia. Program się kompiluje ale wypisuje error jak na screenie. Ktoś mógłby podpowiedzieć co jest źle bo szukałem w necie ale nie rozumiem chyba i tak.

https://pastebin.com/81AXy0Um

#pytanie #programowanie #cpp #kiciochpyta #informatyka
423frewq4f23 - Chciałem sobie napisać program w C++ wyznaczający jakąś ilość czterocy...

źródło: cpp

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@423frewq4f23:
Bo odwolujesz się do elementu tablicy poza zakresem.
Jak tablica ma 100 elementów( int i[100] ) to ostatni element ma index 99 a nie 100 a używając <= probujesz dostać się do tego 100 nieistniejącego elementu a nie do 99
  • Odpowiedz
@ly000: @arowsky: szczególnie początkujący, ale również wielu midów, a nawet seniorów ma taką przypadłość, że nauczą się tej nieszczęsnej pętli for i, a potem zatrzymują się w rozwoju bo w sumie prawie wszystko kombinacją takich petli mogą zrobić. I potem srają tymi pętlami cały kod, powodując że często jest masakrycznie niezrozumiały jak ten przykład tutaj. Do tego bardzo łatwo o błędy typu off-by-one, wyjść poza bufor, czy niechcący
  • Odpowiedz
Mirunie, potrzebuję małej pomocy. Otóż chciałbym, żeby podczas konwersji z chara na double, kopiowało mi całe wyrażenie, łącznie z tym co jest po kropce. Jak to zrobić? Da się w ogóle?
Tak wygląda plik input:
salata 2.50
czarodziejski 7.20
konserwy 6.33
napoj 10.5
dongio - Mirunie, potrzebuję małej pomocy. Otóż chciałbym, żeby podczas konwersji z c...

źródło: Bez tytułu

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

siema, czy jakiś #programista ogarnia dobrze #c++ na #macos #xcode ? mam laboratoria z #programowanie do zrobienia i prowadzący wymyślili sobie jakąś specjalną bibliotekę, do której trzeba zrobić sporo ustawień w #visualstudio 13 xD. Niestety nie umiem ich odwzorować w Xcode (choć możliwe że tylko w części, gdyż dodanie headerów chyba się udało). Najpewniej problem jest z krokiem 13 w linku.
Instrukcja
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@xorvim: programuję backend, nic związanego ze studiami

generalnie mogłem zostać na doktoracie, ale wyszło, że to jest masa roboty i małe pieniądze; z tego co słyszałem to doktorat na aero robi się latami i jest bardzo trudno; z resztą już na magisterce było oranie

jeszcze myślałem o Faurecii czy GE, ale miałem takie poczucie, że jednak programowanie ma większy potencjał rozwojowy pod kątem zmian firm i zarabiania

chyba nie bez
  • Odpowiedz
@Kaczus2B: To co zostało udostępnione bez konieczności kupowania wygląda słabo. Błędy w pierwszych podstawowych zadaniach i jeszcze dość głupie pytania.
Jeżeli to książka skierowana do początkujących to po co szkolne błędy jak:
- printf
- using namespace std;
  • Odpowiedz
Cześć,
Od jakiegoś czasu kombinuję nad stworzeniem własnego gateway'a ZigBee na #linux. Dokopałem się do dokumentacji IEEE 802.15.4 i chciałbym postawić taki stack, żeby komunikacje obsługiwać po socketach z wykorzystaniem interfejsu. Nie wiem jak dokładnie się za to zabrać. Czy wrzucenie takiego stack'u wymaga kompilacji kernela, czy jest to możliwe w jakiś inny łatwy sposób?
#programowanie #zigbee #embedded #cpp #raspberrypi
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy trzeba dodawać sfinae/concept jeżeli kod i tak się nie skompiluje bez spełnienia warunku? Jest to dobra praktyka?
#cpp
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Właśnie dowiedziałem się, dlaczego makra są złe. Próbuję zaincludować header i nagle wielki error "makro redefined" i widzę, że identyczne makro includuje linuksowa libka i header.
Jednego makra nie mogę zmienić, bo to plik linuxa, a drugie makro ma około 6000 wystąpień w kodzie, więc też wolałbym tego nie zmieniać.
Da się coś z tym zrobić? Rozważam wypowiedzenie.
#programowanie #cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gerax9: nie makra są generalnie złe, tylko makra z C / C++ są złe. Inne języki z makrami nie mają takich problemów.

Możesz spróbować oddefiniować makro przez #undef zaraz po zainkludowaniu headera. Wtedy kolejny include nie będzie widział tego makra i zdefiniuje swoje.
  • Odpowiedz
Czy jeżeli robię kopię w funkcji to argumenty powinny być zawsze przekazane by value?

void funkcja(std::string str)
{
std::string s = std::move(str);
}
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gerax9: Dla ciężkich obiektów typu string używaj albo const string&, albo string&& i move. Często robi się oba jako overloady.
  • Odpowiedz
@Gerax9: podejście z const referencją ma wadę jak przychodzi do konwersji. przekazując const char* stworzysz temporary stringa, którego będziesz kopiował, w podejściu z wartością zmovujesz ten, który powstał przy konwersji.

teoretycznie fajnie by było mieć obie sygnatury. w praktyce idzie się skichać przy 2^n overloadach dla n parametrów.

po to powstał perfect forwarding, żeby miec jeden generyczny overload, ale wtedy witajcie szablony i ich mankamenty.
  • Odpowiedz
Mam kilka pytań do osób zajmujących się rtosami.
1. Czy można tam programować w C++ używając stla/boosta i czy jest to popularne rozwiązanie?
2. Większość pracy to programowanie czy rozwiązywanie problemów rtosowych?
3. Czy jest to ciekawa działka w którą warto iść, czy raczej ślepy zaułek?
4. Jak zacząć? FreeRtos? Jakieś specjalne IDE?
#programowanie #cpp
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Gerax9: 1. Wszystko można, tylko po co :) Z C++ jest ten problem, że jak napieprzysz wirtualnych metod, wyjątków i innych cudów nie widów, to bardzo trudno przewidzieć ile potrzebujesz czasu, żeby wykonać ten kawałek kodu. Szablony i wszystko co się z nimi wiąże, są znacznie bardziej przewidywalne.
2. Wszystko zależy od projektu.
3. Ciekawe jest to, co Cię interesuje :) Ale to jest nisza, więc nie spodziewaj się tylu
  • Odpowiedz
1. Czy można tam programować w C++ używając stla/boosta i czy jest to popularne rozwiązanie?


@Gerax9: Można pod warunkiem, że wiesz co robisz. std::vector, std::map - zapomnij*, ale std::array i inne szablony bardzo ułatwiają robotę.

2. Większość pracy to programowanie czy rozwiązywanie problemów
  • Odpowiedz
Dawno dawno temu uczyłem się c++ i próbowałem robić gry. Mówię sobie wrócę do tego.

Po trzech godzinach walki z środowiskiem, kompilatorem, źródłami i wgl wszystkim innym przypomniało mi się dlaczego nigdy żadnej gry nie zrobiłem ;)

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

@ulath: Popracuj nad formatowaniem, zwykle edytory mają funkcję automatycznego formatowania. Wyeliminuj duplikujący się kod poprzez użycie funkcji. Podziel kod na dużo mniejsze funkcje - to jest ok, nawet jeśli używasz funkcji tylko w jednym miejscu. Zamiast drabinki ifów "if(choice == "ssak").." możesz użyć mapy. Funkcja zmienParametry do wywalenia, nie wiem po co jej używasz, skoro i tak masz bezpośredni dostęp do zmiennych składowych klasy zwierze. Nie używaj nazw typu a,
  • Odpowiedz
@ulath: Możesz się już zainteresować czym są słowniki w programowaniu. To takie struktury, które służą do szybkiego wyszukiwania obiektów. Szybszego niż wkładanie obiektów do tablicy i sortowanie jej. Takie struktury w C++ noszą nazwę set,unorderedset, map, unorderedmap. Wtedy po prostu przy tworzeniu obiektu wkładasz do takiej struktury, a w odpowiednim momencie wyciągasz z niej, jeśli klucz istnieje. Być może uda ci się to zaimplementować
  • Odpowiedz
@Gerax9:

Co z konstrukcjami typu std::vector<std::sharedptr<T>> ?

Zależy od przypadku użycia. Na przykład, jeżeli jesteś w stanie zagwarantować, że obiekty w wektorze "przeżyją" ten wektor, to co jest złego w surowych wskaźnikach? Przez właśnie taką paranoję powstają dziwactwa jak std::observer_ptr ( ͡° ͜ʖ ͡°)
I prawdopodobnie takie powinno być jedyne znaczenie surowych wskaźników we współczesnym C++ - odniesienie do obiektu, którego nie jesteśmy właścicielem.
  • Odpowiedz