@TurkusowyRisso: A ja w sumie nie, bo pierwsze słyszę, że ktoś tak to myląco nazywa. Globalne deklaracje to zadeklarowane w globalnej przestrzeni nazw. Natomiast lokalne zmienne czy klasy to takie zadeklarowane w przestrzeni funkcji. Tutaj jedynie można zadeklarować operator w nazwanej przestrzeni nazw i ma znaczenie czy będzie on w tej samej co klasa, jeżeli tak to będzie on widoczny globalnie poprzez mechanizm ADL.
Natomiast operator też może być zadeklarowany jako
Mirki i Mirabelki z #wroclaw, którzy interesują się #cpp, ze szczególnym uwzględnieniem #cpp11, #cpp14 i #cpp17 - będę prowadził mini kurs C++ ze złożoności obliczeniowej i biblioteki STL. Jeśli chcecie poszerzyć waszą znajomość C++, bo np. chcielibyście pracować jako programiści C++ to gorąco zachęcam. Tylko 3 lekcje po 5 godzin + prace domowe i projekt (opcjonalnie). Nielimitowane konsultacje online. Szczegóły i zapisy na stronie Coders School.

Dla was
LordLukin - Mirki i Mirabelki z #wroclaw, którzy interesują się #cpp, ze szczególnym ...

źródło: comment_3M4SXCfoNQcZM0UefSrxObn9EaC7Koih.jpg

Pobierz
#sprzedam #krakow
Mirki mam do sprzedania parę książek z #programowanie #informatyka
1. Skuteczny nowoczesny C++ z 2015 roku, tematyka c++11 i c++14 #cpp #cpp11 #cpp14
~30

2. Thinking in java wydanie IV wersja polska ~35 zl #java

3. Introduction to 3d game programming with DirectX 12, Frak Luna, wydanie angielskie - bardzo polecam. ~120 zl #windows10 #directx12

4. Twórz własne gry komputerowe w pythonie. Praktycznie nowa nie używana. Miał być prezent dla
#cpp #cpp11
Możecie mi polecić jakieś środowisko do pisania w c++ pod linuksa, żeby uwzględniało c++11 w szczególności sharedptr? Przykładowo mam jakiś sharedptr do obiektu, robię sobie do niego kropkę i... nic. Powinno samo zamienić mi na -> i pokazać dostępne metody.
Jak już napiszę takie coś z ręki, kliknę z ctrl na metodę i nie przenosi mnie do implementacji. ( ͡° ʖ̯ ͡°)
Piszę na
Właśnie udostępniłem oprogramowanie do sterowania frezarką CNC o nazwie Frezia bezpośrednio z poziomu Raspberry Pi.

Repozytorium github https://github.com/pantadeusz/raspigcd
Wideo z działania https://youtu.be/KTBCnEE6s4s

Oprogramowanie akceptuje uproszczony G-CODE i emituje sygnały na piny Raspberry za pomocą bezpośredniego dostępu do rejestrów. Wyróżnia się tym, że nie wymaga dodatkowego mikrokontrolera typu Arduino (czy innych wynalazków z którymi należy się komunikować przez USB/UART/LPT).

Działa bardzo elegancko, mimo iż jest to wykonywane na wielozadaniowym systemie Linux (nie real-time).
@zwei: daj znać jak się dowiesz, też jestem ciekaw. Jedyne co mi przychodzi do głowy co pasuje do "listy typów" to variant+visit()/apply_visitor(), ale to znowu słabo do wzorca się odnosi imo
Hej,

http://codingways.blogspot.de/2012/08/implementing-thread-safe-queue-in-c11.html

Mam dwa pytania.
1. Po co używać tutaj std::shared_ptr Jeśli będę chciał użyć shared_ptr to sobie dam za T więc gość chciał za dobrze? Dobrze myślę?
2. Po co strażnik (std::lock_guard lock(mMut); ) w Empty? I tak po zwróceniu true/false nie wiemy czy kolejka jest pusta lub pełna. Bo locka już nie ma. I w kolejnej operacji wcale nie musi być już pusta.

#cpp11 #cpp #programowanie #wielowatkowosc
@xaoc 1 imo przedobrzył. Wystarczyło zrobić kopię obiektu i ją zwrócić. Niczego tym nie zyskał (dalej wymaga copy constuctable). Zresztą - dlaczego miałoby tu być race cond? Można 2x zpopować element?
Mam klasę abstrakcyjną Blob z funkcjami wirtualnymi Blob::fromArray(const QByteArray& raw) i Blob::toByteArray()->QByteArray. Weźmy jej klasę pochodną, Matrix; przeciążyłem operatory QDataStream w taki sposób:

QDataStream& operator<<(QDataStream& stream, const Matrix& in) {
stream << in.toArray();
}
QDataStream& operator>>(QDataStream& stream, Matrix& out) {
QByteArray tmp;
stream >> tmp;
out.fromArray(tmp);
}

Czy dla każdej klasy pochodnej muszę pisać to samo? Skorzystałbym z szablonów, ale nie chcę przeciążać operatorów dla klas innych niż te pochodzące od Blob...
Mam taką sytuację (bez strachu, kilka linijek tam jest i proste ale na Wykopie mało przejrzyście): http://pastebin.com/U5B9NTd1

No i teraz:
1) Czy usunięcie MyClassB spowoduje wywołanie tak destruktora MyClassB, jak i MyClass czy muszę się jakoś odwołać z destruktora MyClassB do MyClass, np. funkcją MyClass::del() w każdym z destruktorów?
2) Czy usunięcie MyClassA spowoduje wywołanie destruktora MyClass, czy też muszę uczynić destruktor MyClass wirtualnym żebym to się stało?

#cpp #cpp11 #cpp14 #
@Dijuna: Generalnie to tak jak masz napisane to powinieneś mieć virtual przy destruktorze, żeby działało zawsze (w MyClass). Dopóki nie pokażesz więcej kodu trudno powiedzieć co się stanie.
kod na pastebin

Mam sobie taki kod, to nie jest prawdziwy program tylko wyciągnąłem samą zasadę działania żeby działało jak najprościej i można było sobie wkleić jak ktoś ma Qt Creatora:
1) Mam listę obiektów i nie chcę w żaden sposób na nią wpłynąć,
2) Chcę wybrać kilka jej elementów (w przykładzie: te których nazwa nie jest pusta, lista indeksów) i posortować na podstawie jakichś ich wartości,
3) Chcę otrzymać listę indeksów
Czesc,

chcialem napisac sobie funkcje compile-time, ktora zsumuje mi sizeof kazdego elementu w std::tuple, kod wyglada tak:
http://ideone.com/yNH8S3

dziala. Niby. Chcialem dodac sobie constraint za pomoca enable_if tak aby liczone to bylo tylko dla typow POD. Pozniej chce zrobic druga wersje dla mojego specjalnego typu, ew. wymagac, zeby klasy non-POD mialy metode size(). Tutaj cos mi sie wywala i kompilator na mnie krzyczy. Za cholere nie moge dojsc o co mu chodzi.
@Kaczus2B:
GUI to po prostu biblioteka, to nie szkolenie z C++.

Szkolenie z C++ (11) mogłoby obejmować:
- pisanie wydajnych programów (to że C++ jest szybki nie oznacza, że nie da się napisać wolnego programu)
- nowoczesne zarządzanie pamięcią za pomocą inteligentnych wskaźników i braniem pod uwagę cykli itd
- programowanie wielowątkowe (async, thread, mutexy), znajdowanie deadlocków, pule wątków, wydajne używanie tych wątków itd
- semantyka przenoszenia, lambdy, r-/l- value
-
@dzaku: koledze chodzi o to, że w C++11 i nowszych odradza się grzebanie bezpośrednio na wskaźnikach jeśli nie trzeba. Ogółem prawdopodobnie masz skopany design kodu skoro takie rzeczy musisz robić (po nazewnictwie zmiennych też mógłbyś się czegoś nauczyć ;)).

A ogółem jeszcze lepiej to nie korzystać z gotowych tablic tylko:
- jeśli znasz rozmiar podczas kompilacji to std::array,
- a jak nie to std::vector z opcją resize(n) jeśli znasz z góry