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?
Wszystko
Najnowsze
Archiwum
- 1
@Huczek: Szkoła programowania C++ Stephen Prata
- 2
@Huczek: Nowa książka Meyersa jest też po polsku (ale nie wiem jaka jest jakość tłumaczenia):
http://www.empik.com/skuteczny-nowoczesny-c-meyers-scott,p1103920923,ksiazka-p
http://www.empik.com/skuteczny-nowoczesny-c-meyers-scott,p1103920923,ksiazka-p
#programowanie
Mirki jaki tytuł polecacie do #cpp dla osoby,która nigdy nie programowała. Znajomy mnie męczy. Symfonie?
Mirki jaki tytuł polecacie do #cpp dla osoby,która nigdy nie programowała. Znajomy mnie męczy. Symfonie?
- 3
@Inteligentny: tylko Szkoła Programowania Prata. Symfonia jest napisana w kiepskim stylu.
@wypokowy_hazardzista: Zelent to ten który nazwał CodeBlocks kompilatorem?
- 1
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.
1.
std::vector v;
using vIter = decltype(v)::iterator;
void f(vIter it){}
2.
- 1
#programowanie #audio #cpp
Używał ktoś może biblioteki BASS? Bo kompilator zwraca mi uwagę na pewną rzecz i trudno mi się mu dziwić trochę.
Przedostatni argument tej funkcji ma rzekomo typ WASAPIPROC:
http://www.un4seen.com/doc/#basswasapi/BASS_WASAPI_Init.html
Używał ktoś może biblioteki BASS? Bo kompilator zwraca mi uwagę na pewną rzecz i trudno mi się mu dziwić trochę.
Przedostatni argument tej funkcji ma rzekomo typ WASAPIPROC:
http://www.un4seen.com/doc/#basswasapi/BASS_WASAPI_Init.html
- 0
@JoeBlade: Rozumiem że muszę tylko załączyć ten plik .h i .cpp i tam już wszystko jest?
http://www.music.mcgill.ca/~gary/rtaudio/
Dokumentacja w każdym razie jakoś specjalnie wiele rzeczy nie mówi z tego co widzę.
http://www.music.mcgill.ca/~gary/rtaudio/
Dokumentacja w każdym razie jakoś specjalnie wiele rzeczy nie mówi z tego co widzę.
- 0
@Khaine: cpp, h i chyba też DLL`ka, ale statycznie chyba też można linkować
- 1
#cpp #visualstudio #programowanie
Próbuje napisać swój pierwszy program w VS i nie kompiluje się ( ͡° ʖ̯ ͡°). Jaki argument do funkcji return powinienem dać żeby było dobrze? Czy nie tutaj leży problem? Ustawiłem w properties projektu WinMain jako entry point
Próbuje napisać swój pierwszy program w VS i nie kompiluje się ( ͡° ʖ̯ ͡°). Jaki argument do funkcji return powinienem dać żeby było dobrze? Czy nie tutaj leży problem? Ustawiłem w properties projektu WinMain jako entry point
źródło: comment_EdYhrenzDpuh3w74MPyf06GkmV5mY10f.jpg
PobierzJaki 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.
@Jakr: Skoro ustawiłeś WinMain jako entry point to musisz taką funkcję zadeklarować.
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:
CFile *fInp;
...
iStatus = fInp->Read(chMsg, iMaxBuffer); // to coś zwraca inta ile znaków zostało skopiowanych
po migracji zrobiłem:
@Wypok_spoko: Z jakiegoś konkretnego powodu robisz wskaźnik do
ifstreama?@psychob: @Wypok_spoko: ok, źle zrozumiałem ten kawałek kodu
- 2
Czy taka funkcja powoduje wyciek pamięci? #cpp #naukaprogramowania
void foo()
{
char tab[100] = "qwertyuiopasdfghjkklzxcvbnm";
}- 2
@CichyGlosZTyluGlowy: Nie.
- 3
@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ą :)
- 1
#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
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
- 0
@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.
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.
- 0
A tak wogóle to
connect (serverThread, SIGNAL(destroyed()),serverpointer, SLOT(deleteLater()));
Jest kompletną głupotą, bo serverpointer 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
connect (serverThread, SIGNAL(destroyed()),serverpointer, SLOT(deleteLater()));
Jest kompletną głupotą, bo serverpointer 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
#programowanie #naukaprogramowania
W jaki sposób mogę sprawdzić, które części mojej aplikacji w #qt #cpp mają wycieki? Appka żre RAM jak p------a, chociaż pakuję smart pointery gdziekolwiek się da.
W jaki sposób mogę sprawdzić, które części mojej aplikacji w #qt #cpp mają wycieki? Appka żre RAM jak p------a, chociaż pakuję smart pointery gdziekolwiek się da.
- 1
@CichyGlosZTyluGlowy: valgrind, memory sanitizer w gcc/clangu.
Moƶe to nie wyciek, tylko referencji nie zwalniasz?
Moƶe to nie wyciek, tylko referencji nie zwalniasz?
- 1
#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.
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.
- 1
@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 ( ͡° ͜ʖ ͡°)
- 0
@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.
- 1
#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:
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
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/@DefaultValueNapisał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
- 1
#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'- 1
@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/
export PATH=$PATH:/usr/bin/
- 0
@lionbest: dziękuję, teraz już działa. :) to jednorazowa potrzeba
- 1
#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
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
- 20
@Jakr: co to ma wspólnego z wanem?
- 3
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.
@Kaczus2B: Co ciekawe, z odpowiedzi stricte C++'owych miałem 1 błąd, reszta wynikała z różnic pomiędzy C a C++ o których nie wiedziałem : ). Dzięki!
@Kaczus2B:
@Kaczus2B: kompilator ma dowolnosc zoptymalizowac to jak tylko mu sie nie podoba - clang bezwzglednie stara
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
- 3
http://dev.krzaq.cc/an-erase-remove-idiom-gotcha/
Bjarne mówił, ƶe biblioteki i języki powinny być tak zaprojektowane, aby cięƶko było popełnić błąd, a pisanie dobrego kodu było łatwe. Tym razem imo nie pykło.
Bjarne mówił, ƶe biblioteki i języki powinny być tak zaprojektowane, aby cięƶko było popełnić błąd, a pisanie dobrego kodu było łatwe. Tym razem imo nie pykło.
- 2
@dupasmoka: Widziałem, ale znacznie bardziej upratruję ratunku w tym: https://github.com/ericniebler/range-v3 :)
btw: zaradził? To tylko proposal, o ile mi wiadomo.
btw: zaradził? To tylko proposal, o ile mi wiadomo.
@KrzaQ2: Jest już dostępne w eksperymentalnych headerach http://en.cppreference.com/w/cpp/experimental/lib_extensions_2#Uniform_container_erasure
- 10
@Phallusimpudicus: Kuchnia.exe
- 1
- 1
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
@Crypton3: skompiluj i zobacz assemblera.
@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).
- 5
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
- 8
@Goryptic: jak wrócę do kompa to podrzucę wzorce projektowe w grach. Może ci się przydać.
- 6



























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);