Mirki: uczę się #jezykc i chciałem się trochę pobawić wskaźnikami i referencjami. W przykładzie który wklejam poniżej nie wiem co oznacza zawartość " &y " wewnątrz funkcji "line", czy to jakaś dereferencja referencji? :O . Z czego to wynika? Czy jest tworzona jakaś nowa kopia adresu? Druga rzecz, dlaczego nie mogę w funkcji main wyświetlić " *y " ? W komentarzach zapisałem to co wyświetla mi funkcja printf #cpp
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@FantaZy:
double x = 3.0;
double z = 4.444;
double* y = &x // teraz printf( "%f", *y); pokaże 3.0;
y = &z // teraz printf( "%f", *y); pokaże 4.444;
*y = 1.11; // teraz printf( "%f", *y);
  • Odpowiedz
Jakaś lektura o C++11 i ew. C++14 by uzupełnić wiedzę z #cpp ? Moja wiedza w większości opiera się na książce Bruce Eckela "Thinking in C++" a to trochę stara lektura. Co byście polecili?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki programysty. Która wersja bardziej Wam leży i dlaczego?
1.
std::vector v;
using vIter = decltype(v)::iterator;
void f(vIter it){}
2.
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@simia: Ƶadna. Znasz typ, decltype jest zbędne. Ewentualnie using/typedef dla późniejszego łatwiejszego refaktoringu, ale ogółem polecałbym szablony.
  • Odpowiedz
Jaki argument do funkcji return powinienem dać

@Jakr:
Primo: return to nie funkcja
Secundo: Wartość zwracana w funkcji powinna być taka jak zadeklarowana, czyli System::Void, z czego wynika
Tertio: Że pewnie powinno być samo return.
  • Odpowiedz
Robię niewielką migrację z C++ Visual 2006 do C++ Visual 2010 i miałem kawałek kodu taki jak:
CFile *fInp;
...
iStatus = fInp->Read(chMsg, iMaxBuffer); // to coś zwraca inta ile znaków zostało skopiowanych

po migracji zrobiłem:
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CichyGlosZTyluGlowy: Nie. Do wycieków pamięci dochodzi wtedy, kiedy ręcznie alokujesz pamięć (np operatorem new) i jej potem nie zwolnisz. W przypadku zwykłych zmiennych, tablic statycznych i zmiennych obiektowych programista raczej nie musi się przejmować zarządzaniem zajmowaną przez nimi pamięcią :)
  • Odpowiedz
#cpp #qt #programowanie

Programirki mam pewien problem dziwny bądź nie dziwny, to zależy od tego czy ktoś będzie wiedział o co dokładnie chodzi czy nie. Chcę sobie zrobić serwer na osobnym wątku w Qt razem z socketem do komunikacji po TCP/IP. Najpierw może pliki źródłowe które biorą w tym udział:

https://gist.github.com/Granathar/e1388680b43c9d66edd9#file-gistfile1-txt - server.h
https://gist.github.com/Granathar/a7a67ac59488b0b0e3a8#file-gistfile2-txt - server.cpp
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine Wywal to:

while (serverThread->isRunning()){};
serverThread->~QThread();

I nigdy więcej takich głupot nie pisz.
Co do pętli while to od tego jest wait, ale wątpię  że go tu potrzebujesz, wystarczy że podpiołeś sobie delete_later i serverThread umrze sobie kiedy będzie chciał, a o tym najlepiej dowiesz się z sygnału.
  • Odpowiedz
A tak wogóle to

connect (serverThread, SIGNAL(destroyed()),serverpointer, SLOT(deleteLater()));

Jest kompletną głupotą, bo server
pointer będzie w wątku który już nie istnieje, więc deleteLater nie zadziała. Istnieje szansa że atrybut serverThread będzie wskazywał na usunięty już obiekt, więc zamist do deleteLater podepnij to slotu w którym przypiszesz do serverThread nulla. Ewentualnie zacznij kożystać z klasy QPointer, która robi to
  • Odpowiedz
#programowanie #cpp #qt

Czy Qt posiada w sobie jakąś funkcję/klasę, która pozwala wybebeszać dźwięk systemowy? Nie chodzi mi tutaj o pobieranie audio z mikrofonu, bo to akurat widziałem, tylko prosto ze źródełka zanim wejdzie w kartę dźwiękową i zostanie przerobione na sygnały dla głośników.
  • 27
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Nicarim: No to BASS pewnie wygra ( ͡° ͜ʖ ͡°) To co mnie fascynuje w wysokopoziomowym programowaniu, że można zrobić coś co będzie miało ręce i nogi, i nie mieć absolutnie bladego pojęcia jak to działa. Tam skąd poniekąd pochodzę (C, Asembler) jest dokładnie odwrotnie ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@JoeBlade: Na razie na stacku się spytałem o tego wrapa, może istnieje coś takiego gdzieś. Nie da się raczej nagrać endpoint audio inaczej niż przez WASAPI.
  • Odpowiedz
#programowanie #cpp

Mirki, mógłby ktoś zerknąć na kod? Korzystam z projekcie z biblioteki Xercesc, ale ona umożliwia wykonywanie tylko prostych xPathów, a ja potrzebuję wykonywać ścieżki w stylu:

myProj/Parameters/Parameter[@Name="SomeName"]/Values/@DefaultValue
Napisałem więc swoją metodę, ale dostaję błąd "myProj.exe has triggered a breakpoint" i przenosi mnie do definicji metody "_CrtIsValidHeapPointer". Jeśli pomijam moją metodę, to wszystko wykonuje się OK, więc to z nią coś jest nie tak, ale debugowanie nie prowadzi do żadnych
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@TheNewIcek: "debugowanie nie prowadzi do żadnych wniosków"

Program wysypuje się w randomowych miejscach. Coś jest chyba nie tak z zarządzaniem pamięcią, ale nie wiem co. Raz funkcja zadziała, a raz nie.
  • Odpowiedz
#programowanie #linux #archlinux #cpp #qt próbuję zbudować swój program tak jak opisano tutaj: http://stackoverflow.com/questions/14170590/building-qt-5-on-linux-for-windows ale wynik jest następujący:

make[1]: x86_64-w64-mingw32.static-g++: Command not found
Makefile.Release:5529: recipe for target 'release/main.o' failed
make[1]: *** [release/main.o] Error 127
make[1]: Leaving directory '/home/sms/Documents/MyApp'
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Djuna Przez co kompilujesz z palca qmakiem czy QtCretorem? Pobaw się konfiguracją środowska w QtCreatorze, obsługuje on kompilator MinGW. Wszystkie ustawienia powinno wczytać podając mu plik qmake, ale wiem że kompilator się ustawia osobno. Jeżeli z palca to pewnie zapomniałeś:

export PATH=$PATH:/usr/bin/
  • Odpowiedz
#programowanie #cpp

Staram się napisać program, który liczyłby pierwiastki drugiego stopnia metodą Newtona. Chciałem zrobić na dwa sposoby:
Przy pomocy pętli for, gdzie podawałbym liczbę iteracji oraz wartość początkową pastebin.

oraz stosując pętle do…while
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dla niektórych wakacje się kończą. Więc proponuję małą zabawę dla ludzi spod znaków #programowanie a szczególnie #jezykc oraz #cpp przy rozwiązywaniu (jak myślałem prostego, ale testowa grupa pokazała, że jest trochę podchwytliwy i wyszedł trudniejszy niż zakładałem) quizu.
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kaczus2B:

Jeśli chodzi o przykład z niezadeklarowaną wartością, to zauważ, ze odnosi sie to do typu integer, przy innych typach mogłoby to rzeczywiście niezdefiniowane zachowanie, przy typie integer będą w pamięci śmieci. więc wypisze po prostu przypadkową wartość.


@Kaczus2B: kompilator ma dowolnosc zoptymalizowac to jak tylko mu sie nie podoba - clang bezwzglednie stara
  • Odpowiedz
if (Creature* creature = thing->getCreature()) [...]


Creature* creature = thing->getCreature();

if (creature) [...]


Orientuje się może ktoś czy jest jakaś różnica wydajnościowa między tymi zapisami po stronie kompilatora?
#cpp #programowanie
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Crypton3: @ghostface: Prawdopodobnie dokładnie żadna, bo optymalizator robi z takim kodem i tak cuda wianki. Wynika z tego, że prawdopodobnie nie ma jednej odpowiedzi, bo to zależy co jest kontekstem tego kawałka kodu. Jedynym sposobem żeby się czegoś dowiedzieć, to nie tyle skompilować i podejrzeć assemblera (obecne procki assemblera też kompilują, interpretują i optymalizują w trakcie wykonania..), co po prostu pomierzyć czasy wykonania (ale koniecznie w danym kontekście).
  • Odpowiedz
Znacie jakieś poradniki/książki/cokolwiek, które pomogą mi zrozumieć jak się faktycznie robi gry? Z tego co się zdążyłem już zorientować, to samo nauczenie się języka, ani nawet frameworków czy bibliotek, nie daje praktycznie nic, jeśli się nie wie, jak to wykorzystać. Jestem w tym beznadziejny. Robiłem np. te poradniki https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAjkwJocj7vlc_mFU-4wXJq (snake i coś w stylu scorched earth tam jest) i wszystko rozumiałem. Składnię wystarczającą do zrobienia takiego węża znałem już przed obejrzeniem tych
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach