@Babooco: Możesz spróbować coś w tym kierunku:

- wygenerowania sobie compile_commands.json przez CMake'a (+/- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ale musisz poczytać o tym)
- podpiąć Eclipse żeby korzystał z tego compile_commands.json (google coś wskazuje, ale musisz sam poszukać szczegółów)
  • Odpowiedz
#naukaprogramowania #cpp
Jaka jest dobra praktyka przy tworzeniu każdej klasy w osobnych plikach w sytuacji, kiedy mój program musi zawierać zmienne globalne np tablicę wartości? Gdzie ja umieścić w projekcie?

Druga sprawa to includowanie bibliotek standardowych w każdym pliku nagłówkowym trochę mija się z celem prawda? Jak najlepiej zaincludować np iostream jeżeli potrzebuje jej w każdej klasie?
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zmiennych globalnych nie rób w ogóle - to zła praktyka w 99% przypadków. Stałe globalne możesz robić - zrób je inline w nagłówku (jeżeli masz dostęp do C++17):
https://cpp-polska.pl/post/slowo-kluczowe-inline-czyli-jak-oszukac-linkerij

Include należy robic jak najmniej w naglowkach i kiedy to mozliwe robic w plikach cpp. Pozwoli Ci to na znaczne (kilkukrotne) obnizenie czasu kompilacji. Uzywanie tzw. precompiled headers tez jest dobrym pomysłem.
  • Odpowiedz
Od początku grudnia przerobiłem sobie Prata #jezykc i #cpp tego samego autora. Popisałem trochę programów, przejrzałem dokumentację C11 z naciskiem na najważniejsze elementy jakie wprowadza (co sugerowali na stacko). Ogólnie wyszedłem z założenia, że przyswojenie C będzie najlepsze na "budowanie podstaw" pod #programowanie
Do tego zapisałem się na poprawę maturki z informatyki. Wybór oczywiście padł na pythona. Wcześniej trochę w tym języku pisałem, wydał mi się
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@niesamowite_: W dużym uproszczeniu jest to system do generowania solucji pod różne platformy.
Zamiast mieć osobną solucję do Visual Studio (Win) i Xcode (OSX) oraz Makefile (linux) i męczyć się z dodawaniem plików do każdej z nich, korzystasz z CMake.
  • Odpowiedz
@luigi_pl: a co to jest "solucja"? Kiedyś ktoś tak przetłumaczył microsoftową nazwę zbioru projektów (solution), ale poza ekosystemem microsoftu raczej się go nie używa. Chociaż mogę się mylić.

Odpowiadając na pytanie autora - żeby nie odpalać kompilatora i linkera z palca, w dodatku w odpowiedniej kolejności i z odpowiednimi flagami, ktoś wymyślił "język", który to uporządkuje. To jest właśnie CMake. Zaletą jego używania jest taka, że nie jest związany z
  • Odpowiedz
Cześć! Mam mały problemik z pewnym mini zadaniem w C++. Należy zamienić podaną niżej funkcję tak by nie pojawiło się w niej słówko goto, while, for (czyli brak jakichkolwiek pętli), a dawała ten sam rezultat. Nie wolno korzystać z rozwiązań z innych bibliotek. Rozwiązaniem wydaje się być rekurencja. Nie wiem jednak jak załatwić nią pętle zagnieżdżone, które dodatkowo mają w sobie odwołania do innych funkcji (przyjmujemy, że podana funkcja "Add" coś tam
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tagtak: nie inicjujesz zmiennej result, zakładam, że ma być 0 na początku. Nie używasz też zmiennej k, olewam więc ją. Nie wiem, czy Add ma efekty uboczne, zakładam, że ma (bo inaczej pętla j=32..0 nie ma sensu bo nadpisujemy temp w ostatnim obrocie i tak :) - jeśli funkcja Add nie ma efektów ubocznych to po prostu cała pętla po j jest do wywalenia i wystarczy dać zamiast niej:

temp
  • Odpowiedz
@tagtak: Ciężkie pytanie, ponieważ rekurencja ma pewne wady względem pętli. Zainteresuj się tematem rekurencji ogonowej i w jakim celu się ją stosuje.
  • Odpowiedz
Mirki pomocy... #cpp #naukaprogramowania #visualstudio #sfml

Ni uja nie mogę tego połapać, podeślijcie jakiś sprawdzony tutek :./

Już przerobiłem wszystko i niby działa a nie działa. Okno nie odpowiada, jakieś błędy, dopisuję s-d, dodaję static albo i nie dodaję i UJ W DUPĘ!!!

Kiedyś mi się udało ale teraz nie mogę ogarnąć nie wiem czy ten sfml jest skur... czy VS19 :/ czy może
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej,

Możecie polecić jakieś fajne i ciekawe porady albo flagi kompilatora do prostego zwiększenia bezpieczeństwa/wydajności/jakości większego projektu C++?

Póki co na chwile obecną korzystam z -Wall, -Wextra, -Wunitialized oraz takich narzędzi jak GCC/Clang Sanitizers, Valgrind, Sonarcloud ale mimo wszystko z uwagi na rozmiar projektu ciągle znajduję w nim nowe bugi i myślę, że istnieją jeszcze jakieś ciekawe narzędzia, które pozwolą mi lepiej debugować aplikację.

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

Napisz implementacje konstruktora kopiującego oraz przeciążenie operatora przypisania klasy:
class a{
private:
int* px;
public:
A(int x){px=new int; *px=x;}};
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Powiedzcie. Czy ktoś z was sprzedawał lub spotkał się z przypadkiem, w którym aplikacje napisane na bibliotece Qt były sprzedawane na podstawie licencji opensourcowej (LGPL)? Macie z tym jakieś doświadczenie?

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

@horus666: Kiedyś zgłębiałem ten temat.

Możesz albo linkować dynamicznie (czyli dołączać Qt jako dll) i sprzedawać bez problemu, albo możesz nawet zlinkować statycznie - jeśli masz taką potrzebę, ale wtedy musisz udostępnić pliki obiektów (pliki wynikowe kompilatora, przed zlinkowaniem), aby umożliwić użytkownikom końcowym zlinkowanie z inną wersją Qt.
  • Odpowiedz
Dzień dobry Wykopie! ( ͡º ͜ʖ͡º)

W ten #tlustyczwartek mamy dla Was ociekający wiedzą wpis od Mariusza Jaskółki! ( ͡ ͜ʖ ͡) To już trzecia część przewodnika po krainie zarządzania pamięcią ()

Uwaga! Dzisiejszy wpis jest przeznaczony szczególnie dla osób zaawansowanych. Niemniej jednak, zapraszamy do lektury wszystkich,
CppPolska - Dzień dobry Wykopie! ( ͡º ͜ʖ͡º)

W ten #tlustyczwartek mamy dla Was oci...

źródło: comment_1582181883XWVNUHbRVssY6N2DX5RnaQ.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy da się w elegancki sposób zakończyć działanie wątku który stoi na funkcji getchar()? W C wystarczyło użyć pthread_cancel, ale w C++ nie widzę takiej możliwości w bibliotece thread.
#programowanie #cpp
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@Defined: Nie.
Tak jest z zasady wątków w C++ aby uniknąć wycieków pamięci.
Możesz za to użyć Boosta, gdzie masz asynchroniczną operację na czytanie z wywołaniem funkcji i z możliwością anulowania z zewnątrz.
  • Odpowiedz
jak zrobic kilkuargumentowego xora w c++, a konkretniej przy użyciu kompilatora clang?

na gcc coś takiego działa

if (!(!(!((days==0)||(hours==0))||(minutes==0))||(seconds==0))) //xor
niestety w clangu już nie. z tego co pamiętam to coś było że w tym wypadku kompilator czyta od prawej czy coś? chetnie sie dowiem w czym tutaj lezy problem
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach