Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - nula

Stran: 1 [2] 3 4 ... 7
16
Pred c++20 bohuzel nic ve stl neni. A to co je ve 20 jsem tbh nezkousel(a ani si nebyl jisty, ze se to tam dostalo).

Nicmene, co se tyka praci s datumem. Je tady od toho knihovna: https://github.com/HowardHinnant/date
Ma u toho dokumentaci, ale i prednasku ze cppconu, na to se oplati kouknout.

Ono to neni az tak uplne jednoduche, si to delat sam, kvuli vsech moznych prestupnych casovych useku(nejen obcas 29. unor. Je treba pocitat napriklad s prestupnyma sekundama).

17
Vývoj / Re:C++ - Filter pattern
« kdy: 20. 12. 2020, 08:22:30 »
Ahoj,
 uplne presne jsem nepochopil jak ten dotaz myslis, takze se jeste zeptam:

1) Chtel jsi rict, ze parametr funkce Filter.apply(X) muze byt ruzny? Jakoze to muze byt jak struct Item, tak std::string? Nejlepsi bude kdyz ukazes jak bys to chtel volat.

A pokud ad1) plati, pak:
a) Chces aplikovat vsechny Rule na vstupni hodnotu?
   - kazdy Rule se podle typu vstupu muze chovat jinak? Nebo respektive muze mit jiny kod?
   - nebo jen chces, aby Rule umel prijmout ruzne typy, ale v podstate prace s nima je vzdy stejna. Ma stejny kod?

b) Chces aby se aplikoval na dany parametr jen ty Rule tridy, ktere ho umi zpracovat? A ostatni ignorovat?


A jeste poznamka: omlouvam se, nechci byt uplne hnidopich, ale dve veci z toho kodu dost krici:
1) Potencialni bug. Ve svem kodu udelas toto:
Kód: [Vybrat]
filter_A.add(new RuleEqualTo(15));
a ve funkci add() pak pridavas nove alokovany Rule do vektoru, ktery pak korektne cistis ve svem destruktoru. Nicmene pokud nekde predtim, nez do vektoru pomoci .push_back() ten pointer vlozis nastane vyjimka (treba v samotnem .push_back()), tak se novy Rule do toho vector<Rule> neprida a timpadem se pri jeho destrukci nebude ani deletovat a timpadem mas leak, protoze ti zustane viset v pameti az do konce behu programu. Dneska uz se operator new fakt neoplati skoro nikdy pouzivat. Kdyzuz pouzivas pointery, tak se koukni na smart pointers. V tomto pripade tedy std::unique_ptr a std::make_unique.

2) kdyz vracis bool hodnotu, tak tam staci podminka :) tedy misto:
Kód: [Vybrat]
return item.id == id ? true : false;
staci napsat napriklad:
Kód: [Vybrat]
return item.id == id;


18
Odkladiště / Re:Háčkovaní maskoti
« kdy: 14. 12. 2020, 15:32:26 »
Tak takove celkem zname "trziste" je u nas fler.cz. Otazka je, jestli pro takhle specializovany zbozi by nebylo lepsi fakt neco, kam chodi lidi vic zamereni na it.

19
Vývoj / Re:Pár otázok na C++
« kdy: 23. 11. 2020, 09:42:54 »
STL ti tam (na platforme windows) namiesto \x0A práskne \x0D\x0A (skúšal som to pre istotu).
Tak to už je podraz.

Dalsi takovy, hosi mne z vas klepne.

Mě zase z tebe. Že neumíš číst. Argumentuješ tu přesně to samé co jsem psal já. Úžasné.

Omlouvam se, sypu si popel na hlavu. Preskocil jsem prispevek od fortrana a to cos citoval nebylo jasne, ze se nevztahuje porad k \n. Tedy, dosel jsem k nazoru, ze to tak je.

Takze uznavam, jsem mamlas, ze jsem si to neprecet poradne. Nicmene porad plati to o tom binarnim rezimu.

20
Vývoj / Re:Pár otázok na C++
« kdy: 21. 11. 2020, 19:17:09 »
STL ti tam (na platforme windows) namiesto \x0A práskne \x0D\x0A (skúšal som to pre istotu).
Tak to už je podraz.

Dalsi takovy, hosi mne z vas klepne.
V NORME jazyka C je definovane UMYSLNE, ze znak \n v TEXTOVEM modu znamena NOVY RADEK. Proto se da psat multiplatformne jednoduse:
Kód: [Vybrat]
printf("Hello\nWorld");
A vysledek bude na vsech systemech:
Kód: [Vybrat]
Hello
World

A nebude tam neco ve smyslu
Kód: [Vybrat]
Hello
       World
nebo
Kód: [Vybrat]
Hello?World


Tohle bylo zavedeno umyslne, protoze hodne casto potrebujes proste vypsat neco po radcich a fakt te nezajima binarni reprezentace, ale to, jak to vizualne v danem systemu vypada.
Pokud chces binarne presnou reprezentaci, tak pouzivas BINARNI zapis (to je jedna z uplne prvnich veci kterou se snad clovek musi naucit o IO).

Konec radku je na ruznych systemech velmi ruzny:
CR, CRLF, LF, LFCR, dokonce mam pocit ze se na to pouzivaly i jine znaky z ASCII.

V dobe kdy C vznikal bylo toto zcela normalni a jazyk ktery neumi do konzole jednoduse vypsat 2 radky, je absurdne nemultiplatformni. Takze to ma velmi dobry duvod.

21
Vývoj / Re:Pár otázok na C++
« kdy: 21. 11. 2020, 16:40:51 »
1) V norme jazyka je definovane ze \n znamena new-line. Neni tam nic o tom, ze by to melo znamenat LF.
Pokud chces zapisovat vyslovene x0A, tak to samozrejme muzes delat rucne. Jazyk s tim problem nema.
Mnohem casteji nez zapisovat nejake arbitrary znaky chces proste ukoncit radek. Takze je to za mne i logicke reseni.

2) Jednoduche a obvykle dostatecne rychle je proste normalni appendovani ke stringu. Realokace se deji vzdy na dvojnasobek, nebo velikost noveho stringu, podle toho co je vetsi. Tedy vetsinou nerealokujes tolikrat, kolikrat pridavas. Stat se to ofc muze pri supernevhodne rade, kterou spojujes. Kdyz znas vyslednou velikost, tak se zvetseni kapacity samozrejme oplati udelat manualne.

Co je treba rict je, ze castokrat by slo udelat vsechny stringove konkatenace uz v compiletimu. Bohuzel z mne neznamych duvodu std::string neni kompletne constexpr (nejspis opomenuti), takze to na standardnim std::stringu nepoujde. Vyjimecne tedy, pri maximalni optimalizaci, se oplati pouzivat i jine nez implementace, nez ty ze STL.

22
Vývoj / Re:PHP v Netbeans a práca z viacerých miest
« kdy: 11. 11. 2020, 21:28:29 »
Pokud na tom pracujes sam a nepouzivas branchovani a tak(coz predpokladam ze ne, protoze to bys uz mel reseni rozmyslene), tak je imho git nanic. S gitem je problem, ze kdyz zapomenes pushnout, tak jsi nahranej. Stalo se mi to uz nejednou. Zapomnel jsem si pushnout a pak uplne na jinem kompu na jinem miste, kde jsem chtel pokracovat jsem si mohl akorat tak piskat.
V tomhle konkretnim pripade doporucuju neco jako Dropbox. Samozrejme, nema to skoro zadne featury co chces ke kodu, ale ty je stejne nevyuzivas. A tu hlavni featuru -  ze mas syncovane soubory to ale dela automaticky a velmi dobre.

23
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 31. 10. 2020, 10:41:33 »
Používám Vim, spouštím z něho i kompilace a testy.

a má cenu se to učit nebo je to pozéřina, protože to vypadá cool?

Pokud jsi to doted nepotreboval, tak bych se tim nezatezoval. Jo oplati se tomu venovat jedno odpoledne, na nauceni se zakladnich zkratek. Pro editaci konfiguraku a tak. Jinak dnes uz jsi o dost produktivnejsi v ruznych IDE.
Vim ma sice perfektni editacni moznosti, ale psani kodu rozhodne dneska neni o ciste editaci zdrojaku. Mozna nejakych primitivnich utilitek, ktere mas v hlave.
Samozrejme, ze pro vim existuje nepreberne mnozstvi pluginu. Nicmene, pak stravis pul zivota jejich konfiguraci, ucenim se ruzne filozofie a resenim konfliktu. Vim jsem pouzival 15 let a mel jsem ho docela rad (az na naprosto otresny vimscript a vylozene hloupou filozofii vimich windowu). Dneska ho uz ale pouzivam jen na editaci konfiguraku, pripadne na rychloeditaci zdrojaku, kdy vim, kam presne sahnout, nebo kam kouknout.

24
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 31. 10. 2020, 10:35:34 »
https://www.ultimatepp.org/

Koukam, ze je to asi trochu podobne jako stary dobry C++Builder od Borlandu (dnes teda embarcadera)? Tyjo, mozna by to bylo dobre na nake desktopove utilitky a tak. Koukam, ze to umi ruzne prekladace, takze predpokladam, ze neni problem s modernim c++. To vypada zajimave. Minimalne pro desktopove appky.

25
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 31. 10. 2020, 10:32:32 »
hodne davno (anjuta, eclipse cdt, netbeans, code::blocks, codelite)
nedavno (clion, zeus ide, kdevelop, qtcreator)
dnes na vsechno visual studio code

tak rok zpet jsem primarne pouzival produkty od jetbrains stale jeste si platim i All Products Pack  licenci. Ale zjistil jsem ze mi ve vysledku vice vyhovuje VSCode

To mne celkem zajima, jsou nejake konkretni duvody, proc prestoze platis licenci, tak jsi presel spis k VSCode? Nebo spis je to dano pocitem, a "lepsi" praci (tim lepsi myslim, pro prijemnejsi/jednodussi/efektivnejsi)?

Tak zejmena rad pouzivam oss veci kdyz to jde a prilis me to neomezuje. To byl zejmena duvod ze zacatku. Kdyz jsem s VScode zacinal tak mel i docela hodne chyb a ruzne nedokonalosti, takze jsem casto pri nejakem problemu rad zase sahnul na IDE od jetbrains. A jak se postupne VSCode zlepsoval tak jsem jetbrains IDE produkty prestal v podstate uplne potrebovat, ale pro jistotu si je dale platil. A brzo mi predplatne skonci, tak uvidim jestli uz se rozhodnu ho neprodlouzit a nebo to zase  o rok posunu.

Jinak k tem konkretnim duvodum:
1.) CLion mi pro projekt na kterem v praci pracuji nefungoval. Hodne se to sekalo a bylo to hrozne pomale a vlastne to nefungovalo. Ne ze by VSCode v te dobe byl nejak ultimatni ale aspon se nesekal a dalo se stim pracovat. Dnes uz VSCode skvele funguje s tim projektem a nemam vetsi problemy. CLion jsem nejakou dobu nezkusil, takze je mozne ze i ten se zlepsil, nez se rozhodnu (ne)prodlouzit licenci urcite jeste vyzkousim.

2.) Pouzivam hodne jazyku a prepinam mezi hodne projektama. U jetbrains produktu mi trochu vadilo ze musim mit All pack a mit nekolik IDE a ne jen jedno, celkove to melo za nasledek vetsi systemove pozadavky a ruzne komplikace souvisejici s nutnosti mic vice programu (aktualizace atd, to castecne resil jejich toolbox coz byla ale zase dalsi kudla)

No a jednim z jazyku co pouzivam je Dlang a ten proste v jetbrains nema rozumnou podporu

3.) nemam rad javu

Takze aktualne mam jedno IDE VSCode kde mam nainstalovanou podporu pro vse co potrebuji, jednotne zkratky a proste vsechno co potrebuji jen jednou a na jednom miste a pocitove jsem produktivnejsi a prostredi je sviznejsi

Mas pravdu, zapomnel jsem na ten pain se slabou performance. Od dob covidoveho homeofficu delam 100% jen na celkem nabusenem desktopu a tady to neni poznat. Na notasu to bylo neuveritelne peklo. Pravda je, ze uz driv jsem pracoval radsi pres remote s IDE spustenym na desktopu.
Musel jsem to znova vyzkouset primo na notasu a - z kratkeho vyzkouseni se mi zda, ze to sice nelaguje, ale obcas je to chciple jak hlemyzd.
Ja jsem VSCode zkousle v pocatcich a bojoval jsem se ruznymi nefunkcnostmi, proto jsem zustal u CLionu, prestoze jsem skripal zubama(a urcite bych radsi pouzival plnohodnotne visual studio, ktere tehdy nemelo ovsem plne funkcni podporu pro remote vyvoj a ja vyvijim, minimalne v zamestnani, vyhradne pro linux). Casem se CLion celkem vylepsil, takze jsem VSCode uz nezkousel. Mozna prisel opet cas.

Mam jeste dotaz. Co nejake debugovani a pripadne profilovaci nastroje? Pouzivas to? Ma to nejakou slusnou podporu?

26
Vývoj / Re:Jake používáte prostředí pro vývoj (C++)_
« kdy: 30. 10. 2020, 14:03:51 »
hodne davno (anjuta, eclipse cdt, netbeans, code::blocks, codelite)
nedavno (clion, zeus ide, kdevelop, qtcreator)
dnes na vsechno visual studio code

tak rok zpet jsem primarne pouzival produkty od jetbrains stale jeste si platim i All Products Pack  licenci. Ale zjistil jsem ze mi ve vysledku vice vyhovuje VSCode

To mne celkem zajima, jsou nejake konkretni duvody, proc prestoze platis licenci, tak jsi presel spis k VSCode? Nebo spis je to dano pocitem, a "lepsi" praci (tim lepsi myslim, pro prijemnejsi/jednodussi/efektivnejsi)?

27
Vývoj / Jake používáte prostředí pro vývoj (C++)_
« kdy: 28. 10. 2020, 19:05:46 »
Ahoj,
 chtel bych polozit takovou anketni otazku: Jake prostredi pouzivate pro vyvoj v c++?

Osobne jsem asi 15 let pouzival vim, ale uz dnes uz se mi to zda fakt zbytecne. Osobne jsem presel na IDE od Jetbrains(protoze obcas se dostanu i k Jave, Pythonu a hodne vyjimecne i k webovym vecem).

Jak to mate vy?

28
Vývoj / Re:Ako ukladáte binárne dáta a texty v C++?
« kdy: 05. 10. 2020, 11:48:11 »
std::string by měl zvládnout i nějakou tu nulu uvnitř, ale bude to křehké. Čtenáře kódu by mohlo třeba zaskočit pokud .size() vrátí něco jiného než strlen. Na druhou stranu jsou implementace docela vychytané. Třeba clangový string zvládne do svých 16B nacpat 15B SSO string. :)
...

No, kombinovat C a C++ funkce nikdy neni dobre. A pouzivat strlen na string::c_str() je jeden z pripadu :) Pokud se predava vsude jako kontejner std::string, tak nevim, jak by se k tomu strlenu clovek dostal. Krehky neni kontejner, krehke je michani C a C++
Jinak, ano, proto to tam zminuju vys, ze clovek dostane navic sso. Takze u mensich poli je i dobra pravdepodobnost, ze  to bude mit i vykonnejsi nez mallocy.

pouzij klasicke C-like ukladanie:

char[] pole = {0x01, 0x02, 0x03}
char* string = "\x0A\x0D\0x61\x00";

Není naprosto žádný rozumný důvod použít něco takového. Mnohem lépe použít std::array<unsigned char> pro fixed-length buffer.
Jop, rozumné implementace std::array v sobě mají navíc asserty na správných místech. Až se zase utneš při indexování (až, ne jestli ;) ) tak za to budeš jen rád.
Souhlasim, je opravdu malo pripadu, kdy je nutne pouzivat Cckove pole a ne C++ std::array (ci vector). Nerikam, ze nejsou, ale vetsinou je v te chvili jasne, proc je std::vector(/array) nevhodny ci nepouzitelny.

29
Vývoj / Re:Ako ukladáte binárne dáta a texty v C++?
« kdy: 04. 10. 2020, 08:51:48 »
  • std::string muzete pouzivat i na ukladani binarnich dat. String si drzi velikost ulozenych dat zvlast. Navic dostanete sso. K datum se da pak jednoduse pristupovat pomoci .size(), .data() (c_str() je totez, ale imho semanticky .data() vypada lip)
  • Da se pouzit std::vector<>, nebo std::array<>.
  • Vyhnul bych se jakymkoli manualnim mallocum. Skoro nikdy to neni potreba.

30
Vývoj / Re:C++ načo slúži constexpr?
« kdy: 31. 08. 2020, 07:11:41 »

Constexpr funkce _se dají_ vyhodnotit během překladu. Jestli se tak stane je na libovůli překladače. V tom jsou trochu slabší než constexpr proměnné. Takže c++20 zavedlo consteval funkce, které jsou tutově vyhodnocené během překladu.

Moment, neni garantovane ze se constexpr funkce vyhodnoti v compiletime v pripade, ze dostane "constexpr" argumenty?
(A ta hodnota je nekde vyuzita, jinak se asi odoptimalizuje, to chapu)

Stran: 1 [2] 3 4 ... 7