@nostalgiwolf: najzabawniejsze jest to, że większość języków znacznie nowszych od C++ jest nadal mocno w tyle za C++ pod względem ekspresywności, wydajności, przenośności czy nawet narzędzi do debugowania. Przykładowo taki nowoczesny Kotlin jest taki nowoczesny że nie ma nawet typów unsigned, a programiści Go dopiero od roku jarają się że dostali genericsy i nadal czekają na iteratory.

Jedynym nowoczesnym językiem, który jest w stanie rywalizować z C++ jest Rust. Cała reszta
#programowanie #python #perl #c #cpp

Pytanie do programistów.

Swoje pliki konfiguracyjne podzieliłem na pakiety i napisałem sobie narzędzie do zarządzania nimi. Skrypt został napisany na szybkiego, sprawdza się, ale chciałbym go przepisać. I tutaj pojawia się pytanie.

Moje pakiety mają zależności i może znacie jakieś gotowe rozwiązanie, narzędzie, które dostając listę zainstalowanych pakietów i zależności, potrafi zrobić listę pakietów do zainstalowania? Najwięcej czasu i kodu właśnie mi zeszło na zarządzaniu zależnościami.

Efekt
@psiversum: jak siedzisz przy jednej dystrybucji to zrób sobie paczkę (np DEB czy RPM czy coś tam) z konfigiem do danej apki i daj w zależnościach tę apkę. Wtedy przy instalacji configa automatycznie zainstaluje ci apkę + zależności. np robisz desk-vim-config.deb że zależy od vim. A analogicznie robisz paczkę desk-all która zależy od desk-vim-config desk-cos-tam-config itd. Wtedy apt install desk-all i pozamiatane. Wszystko trzymasz w repo GITa.

Tylko musisz wstawić
  • 0
@m_bielawski: też nie głupie. O tym nie pomyślałem wcale. Kwestia tego, czy ma to sens do zastosować tego typu, co ja potrzebuję. W trakcie np. instalacji systemu, ja mam mój skrypt, deskset dostępny. Nie wiem, jak z narzędziami, które wymieniłeś. Sądzę, że są to dość duże kobyły. Ale trzeba by się temu bliżej przyjrzeć.
#programowanie #cpp #winapi #windows #wingdi #gdi #visualstudio Cześć, mam taki edytor.
Poszukuję jakiegoś prostego przykładu, który by coś rysował nie w głównym oknie aplikacji tylko w dodatkowo utworzonym oknie takim jak tutaj po lewej.
Nie jestem pewien czy dobrze mam to zrobione, chciałbym zobaczyć przykład który pokazuje jak to się powinno robić. jedyne przykłady jakie znajduje to takie gdzie coś się rysuje w głównym oknie aplikacji. Może wiecie gdzie znaleźć taki przykład?
ZawzietyRobaczek - #programowanie #cpp #winapi #windows #wingdi #gdi #visualstudio Cz...

źródło: Przechwytywanie

Pobierz
@ZawzietyRobaczek: Rozumiem, że z racji doświadczenia znajomość winapi może się przydać przy utrzymaniu jakichś starych projektów, ale ja osobiście nie trzymałbym się jednej konkretnej platformy (a zwłaszcza Windowsa) myśląc o dalszym rozwoju zwłaszcza w C++. Qt jest na licencji LGPL - możesz podlinkować potrzebne biblioteki statycznie przy zachowaniu licencji. To co potrzebujesz jest tam do zrobienia od strzała i będzie dało się zbudować pod wiele systemów.
#programowanie #cpp #pytaniedoeksperta #programista15k

Chce sprawdzić jak działa Catch2 dla C++ w Debian

przykład:

#include <catch2/catch_test_macros.hpp>

static int Factorial( int number ) {
return number <= 1 ? number : Factorial( number - 1 ) * number; // fail
// return number <= 1 ? 1 : Factorial( number - 1 ) * number; // pass
}

TEST_CASE( "Factorial of 0 is 1 (fail)", "[single-file]" ) {
REQUIRE( Factorial(0) == 1 );
@defoxe: -I /usr/include/catch2 tym zakomunikowałeś gdzie są same headery, ale nigdzie nie dałeś informacji skąd ma sobie dolinkować "mięso" do finalnej binarki. takie coś by wystarczyło jakbyś miał bibliotekę header-only. imo ten -I /usr/include/catch2/ jest niepotrzebny w ogóle, powinien tam z automatu zerkać
Mirki, mam rok doświadczenia w c++ + kilka projektów. Celuję w c++. Ile prosić na start?

Na nofliujobs i innych stronkach są niby widełki over 10k, no ale przy obecnych realiach to xD chyba nie będę tyle proponować. Z drugiej strony, spotkałem się tu z wpisem że przy małym doswiadczeniu powinno się prosić o 4k na start. Przyznam, że to chyba trochę mało jak na juniora?

Ponad rok temu dostałem propozycje roboty
Jeśli mam w językach programowania #c #cpp słowo static, to wtedy kod tych funkcji i zmiennych leci do exe do "data" tak czytałem.

A jak to wygląda w przypadku #csharp ? Jeśli mam jedną funkcje w przestrzeni nazwa, jednej klasy, to dostaje output dll i exe, i mimo, że jest static, to usuwając dll, program nie działa, czyli w csharp działa to jakoś inaczej.

Ale jak?

#programowanie #linux #windows #pytaniedoeksperta
Jeśli mam w językach programowania #c #cpp słowo static, to wtedy kod tych funkcji i zmiennych leci do exe do "data" tak czytałem.


@pyroxar: ło panie. w cpp masz z 10 różnych zastosowań i znaczeń static
- static free function
- static member function
- (inline) (constexpr) static global variable
- static variable inside function
- (inline) (constexpr) static member variable

pewnie coś jeszcze przeoczyłem. zachowują się one totalnie inaczej, nie
@IceGoral: Tutaj nie chodzi o to, czy ping z różnych miejsc jest podobny czy nie, ale o porównanie czasu oczekiwania do czasu parsowania JSONa i przygotowania kolejnego requesta. Ping pewnie masz w okolicach kilkudziesięciu milisekund. Parsowanie JSONa i przygotowanie requesta powinno zająć kilka milisekund, czy o rząd wielkości mniej. Może i uda Ci się urwać jedną czy dwie milisekundy tu i tam, ale i tak to nic nie da bo czas
Cześć,

Zrobiłem prosty system IoT bazujący na MQTT i JSONach. Serwer odbiera wiadomość, robi dispatch i przekazuje żądanie do konkretnego interfejsu, który parsuje requesta, składa odpowiedź i publikuje na MQTT. Kolekcjonowanie danych do złożenia odpowiedzi naturalnie odbywa się na różne sposoby (komunikacja po fizycznych interfejsach z czujnikami) w zależności co jest żądane. Jednak czuję, że architektonicznie mogłoby coś zagrać lepiej jeśli chodzi o budowanie odpowiedzi.
Chodzi mi po głowie stworzenie jakiegoś generycznego
@Parseval O MQTT przeczytałem 5 minut temu, ale może trochę pomogę. Nie podoba mi się w Twojej architekturze to, że zewnętrzny interfejs przenika do głębszych warstw abstrakcji. Głupia zmiana formatu wiadomości lub przeniesienie jakiegoś pola do innego requestu powoduje zmiany w serwerze, dispatcherze i kodzie modułów komunikujacych się z czujnikami.

Zewnętrzny interfejs zatrzymaj w aplikacji serwera i tam zrób logikę która będzie parsować requesty i na tej podstawie, delegować konkretne zadania do
Chodzi mi tutaj o problem czysto software'owy, tzn. jak skonstruować buildera dla tych odpowiedzi. W tym przypadku chodzi mi o jakąś klasę abstrakcyjną albo inny twór bazujący na statycznym polimorfizmie, który na podstawie tego requesta zrobi to co napisałeś w punkcie 3.


@Parseval: jak nie masz wspólnego zachowania dla wiadomości to co możesz abstrachować? Powinieneś mieć dispatchera, który robi switch po typie wiadomości przychodzącej i tak robisz logikę dla każdej wiadomości
A jednak VS ostrzega już w trakcie pisania, a przed kompilacją. Zacząłem się więc zastanawiać, czy można to jakoś sprawdzić przed wystąpieniem ostrzeżenia.


@MostlyRenegade: ale o co w sumie pytasz? Sam napisałeś, że VS pokazuje warning przed kompilacją.
Jest to rozwojowa działka?


@cordianss: Tylko jeśli jesteś masochistą xD

Tak na serio, embedded zajmuję się prawie 9 lat i nauczyłem się, że wszystko zależy od tego, czym dokładnie się zajmujesz. Moduły kernela Linuksa i grzebanie w rejestrach bare metal jest moim zdaniem najnudniejsze. Ale są również ciekawsze rzeczy, które wymagają dodatkowo wiedzy domenowej.
✨️ Obserwuj #mirkoanonim
Przewijało się pewnie kilkadziesiąt razy takie pytanie, ale może ktoś z #cpp i #gamedev będzie miał jakieś świeższe dane. Krótko o mnie: przebranżowienie po niecałych 2 latach z #plc do #gamedev, studio polskie (~100 osób), ale kapitał zagraniczny. Obecnie stuknęło mi 2 lata na pozycji juniora programisty. Czas na awans, bo i skillsy miękkie się dobrze przetransferowały z kariery w automatyce, i technicznie też jest dobrze. Moje pytanie
Mam lęk że po #studbaza nie znajdę roboty jako programista i skończę w McDonaldzie XD
Codziennie czytam coś o #cpp, oglądam czy pisze kod ale chyba jestem paranokiem, z tyłu głowy czuję że nauka tylko cpp to za mało.
Jakiej technologii się uczyć by mieć największą szansę na robotę? Zostały mi 3 semestry i chce je w pełni poświęcić na naukę
#naukaprogramowania #programowanie #pracbaza #it
@kacpervfr:

mialem na studiach kolege, ktorego interesowal wlasnie tylko c++ i nie chcial slyszec o zadnym webdevie i innych javascriptach

w koncu przyszly wakacje i czas na szukanie sobie stazu, no to kazdy z roku znalazl cos w popularnych technologiach, a ten nic xD mowil, ze znajdzie za rok i sie pouczy w tym czasie openGL i na pewno cos znajdzie

i #!$%@?.. wszyscy z nas juz rok po studiach, kazdy
Mam strukturę plików zorganizowana w taki sposób że foldery mają w sobie cmakelists.txt, pliki cpp i pliki header. Chciałbym zrobić tak żeby pliki header były inckudowalne przez #include<nazwafolderu/nazwaheadera>. Próbowałem w cmakelists danego folderu zrobić

addlibrary(nazwafolderu ...)
targetincludedirectories(nazwafolderu ${CMAKECURRENTSOURCEDIR})

Niestety to nie działa. W tutorialach na internecie widziałem że ludzie tworzą podfoldery include I tam wrzucają wszystkie headery w danym folderze, a
Czy dobrze rozumiem że include trzyma tylko te headery, które powinny być dostępne na zewnątrz modułu, a folder src trzyma wszystkie pliki cpp oraz te headery, które są wewnętrzna (prywatną) implementacja modułu?


@asdxmee: to jest jedno z rozwiązań, najczęściej stosowane. można zrobić "internalheaders" z PRIVATE i "externalheaders" z PUBLIC

dodatkowe rzeczy jak np nie wiem, mniejsze pliki binarne albo szybsza kompilacja


@asdxmee: teoretycznie kompilatorowi krócej zajmie znalezienie "dupa.h"
@asdxmee Nie wiem niestety jak z kompilacją, ale publiczne nagłówki warto wydzielić również dlatego, że możesz je później zainstalować razem z biblioteką za pomocą cmake install, gdy np. udostępniasz komuś model w postaci binarnej + api.
Poza tym publiczne nagłówki łatwiej się używa jeżeli leżą w mocno pogrupowanym i posegregowanym drzewie katalogów, wtedy łatwiej znaleźć odpowiedni plik używając cudzej biblioteki. Osobiście wolę w src trzymać jeden wielki wór, a w include takie
Czytam sobie "Opus magnum C++11" Grębosza i niestety facet strasznie leje wodę... Pisze sensowne i ważne rzeczy, ale niestety zbyt rozwlekle jak na mój gust. Czy możecie polecić jakąś książkę do nowoczesnego (>=11) C++, w której wiedza podawana jest bardziej zwięźle? Programuję dorywczo / hobbystycznie w C++ od 2 lat. Szukam czegoś, co poszerzy / usystematyzuje moją wiedzę.
#cpp #programowanie
  • 2
@ponton: Nie chce mi się spierać, ale to że C++ jest najważniejszym językiem programowania powinno być w miarę oczywiste. Kompilatory, maszyny wirtualne innych języków, środowiska uruchomieniowe - taki V8 dla JavaScript, systemy operacyjne, prawie cały middleware, silniki baz danych, systemy czasu rzeczywistego, systemy pokładowe od samochodów przez samoloty po statki kosmiczne, większość programowej infrastruktury sieciowej. To wszystko i jeszcze więcej stoi prawie wyłącznie na C++ albo będzie, bo obecnie jest napisane