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 - Idris

Stran: [1] 2 3 ... 62
1
Jo a to pribalovanie dát som si práve vygooglil:

https://stackoverflow.com/questions/18161680/how-do-i-stdbind-a-non-static-class-member-to-a-win32-callback-function-wnd#18162974

Na tento konkrétny prípad sa to hodí.

Ale môžu nastať aj iné podobné situácie kde sa to už hodiť nemusí. (Napr pri hookoch LowLevelKeyboardProc) Preto som hľadal čo najvšeobecnejšie riešenie. Prvé ma napadlo použiť labdu s captures, lenže tá neni kompatibilná s pointerom na funkciu. ďalej som skúšal použiť std::bind (a tiež std::mem_fun), tie fungovali, ale tiež neboli kompatibilné s C-čkovým pointerom na funkciu ale len s C++osvým std::function.

Takže pre C-čkový pointer na funkciu všeobecné riešenie asi ani neexistuje (mimo použitia static). Ja sa snažím čo najviac využívať moderné konštrukcie z C++ ale pri RegisterClass to žiaľ nejde. Ale aspoň som sa dnes niečo nové naučil aj o C-čkových typoch.
Ono to nejde z principu, uzávěry mají kontext. Proto mají vždy callbacky v C parametr pro uživatelská data (typicky ukazatel). Pro tu klávesnici je ve WinAPI taky, v KBDLLHOOKSTRUCT.

2
Keby sa dal do štruktúry určenej pre funckiu RegisterClassEx (WNDCLASSEXW) vložiť typ std::function tak mám po probléme, std::function je veľmi flexibilný a viem ho nabindovať, ale ten už potom neviem skonvertovať na typ WNDPROC.
To samozřejmě nejde, musí se předat čistá céčková funkce, která si pak vezme ten ukazatel na funktor a zavolá jej. To už jde snadno. Volaný objekt si prostě žije na haldě včetně kontextu a ten callback si musí ukazatel přetypovat a zavolat.

3
Ano, target ti vrátí nullptr. Ze std::function se function-pointery nevyrábějí. Pokud ho potřebuješ, tak použij klasickou funkci.

Ahoj a nevedel by si mi prosím poradiť ako na miesto kde sa očakáva typ:

Kód: [Vybrat]
typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
vložiť (bindnúť alebo také niečo) ešte jeden parameter? Potrebujem tam dostať inštanciu triedy ktorá WNDPROC obaluje.  Keďže sa tam vyžaduje Cčkový pointer na funkciu nemôžem tam použiť std::bind (resp ani boost::bind)

Momentálne to riešim cez static. Zatiaľ mi to stačí, ale chcel by som mať možnosť vytvoriť viac inštancíi a každú predať ako parameter do WNDPROC (WNDPROC musí byť static).

Žiaľ toto je asi prvý vážnejší zákys v C++ na, ktorý nie a nie nájsť riešenie. A možno je to riešenie aj veľmi jednoduché, len mi chýba nejaká podstatná znalosť. Preto sa to snažím vyriešiť štandartným spôsobom. Viem, že by sa dala vytvoriť std::map a v nej indexovať jednotlivé inštancie podľa HWND, ale ja sa chcem naučiť ako sa to robí normálnym spôsobom, nie cez nejaké obskurné hacky.
RegisterClass má parametr pro alokaci paměti navíc nad rámec windowsí struktury. Tam se dají předat uživatelská data. Spíše než přímo std::function bych tam dal ukazatel na funktor, ať se snáze spravuje paměť. Takový funktor pak může obsahovat std::function nebo mít kód přímo v přetíženém operátoru ().

4
Studium a uplatnění / Re:Výběr VŠ
« kdy: 25. 09. 2020, 00:13:42 »
studium čistě informatických oborů (vyjma Matfyzu) není do budoucna perspektivní
Studium “čisté informatiky” je skutečně o ničem, i na tom Matfyzu, vždy je dobré to s něčím spojit, oborů zvaných “komputační X” je bezpočet.

5
Vývoj / Re:Typový system versus unittesty
« kdy: 22. 09. 2020, 23:47:53 »
To by bylo super. Na Swift se podívám. Já hledal obecně, a našel jen něco pro TypeScript, ale to odhadem je něco jiného stejného jména.
Jo, to bylo asi “indexable types”, já zmiňoval “indexical types.” To jsou typy, jejichž denotát závisí na kontextu. V podstatě něco jako “this”, ale na úrovni typů. Jsou to obecně higher-kinded typy, které žádný z hlavních OO jazyků vyjma C++ nemá. V metodách se dá používat Self[T] a podobné srandičky, což vede k mnohem silnějšímu typovému systému, než má třeba Java.

6
Studium a uplatnění / Re:zkusenosti s VS - kombinovana forma
« kdy: 22. 09. 2020, 09:41:19 »
člověk musí zápasit s [...] matematikou, která je docela náročná rozsáhlá.
Ta matika je “problém” všude, ale IMHO se dá snadno zvládnout, před dvěma desetiletími jí bylo na informatice mnohem více, postupně se ořezává. Jinak jak je psáno výše, UPOL je velmi dobrá volba.

7
Vývoj / Re:Jak obejít absenci generik v Golangu
« kdy: 19. 09. 2020, 14:43:30 »
Řez je hodnotový typ, pole ukazatelů nedává smysl. Po opravě bude fungovat porovnání podle interface{}, jež obsahuje ukazatel na prvek a typ. V případě jiné porovnávací sémantiky by to chtělo rozhraní Equatable.

Také doporučuju kouknout na Go 2, má generika (je ve stavu alfa verze).

8
Studium a uplatnění / Re:zkusenosti s VS - kombinovana forma
« kdy: 19. 09. 2020, 14:37:56 »
Mám zkušenosti z obou stran, můžu doporučit MUNI, na škole ale zas tak moc nezáleží, pokud to není něco obskurního, důležitá je při této formě motivace a dobrá organizace času. Držím palce.

9
Vývoj / Re:Typový system versus unittesty
« kdy: 15. 09. 2020, 22:16:19 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).
Díky. Jsem rád za každý hint.
Nějaký odkaz, článek, by nebyl?
Takhle z hlavy mě napadá jen dokumentace ke Swiftu, zejména použití Self a jeho spojení s asociovanými typy. Teď zrovna nemám na nic čas, ale za pár dnů k tomu můžu něco napsat tady.

10
Vývoj / Re:Typový system versus unittesty
« kdy: 14. 09. 2020, 02:15:57 »
Před pár dny jsem narazil na indexikální typy a vzpomněl si, že tebe typové systémy a intuicionistická logika zajímají, tak jen dávám tip ;) Je to něco jako “this”, ale na úrovni typů. Jdou skrz to implementovat higher-kinded typy v systému prvního řádu (bez explicitních HKT), takže ve výsledku je takový systém formálně silnější (a kompatibilní s dědičností).

11
to korabro: Chybí ti životní náplň. Vykašli se na ostatní, ať si dělají, co chtějí a starej se sám o sebe.
Musíš začít dělat něco, co má smysl. Starej se o zvířata, o důchodce, pracuj rukama, tvoř něco. Ale něco smysluplného, s trvalou hodnotou. Najdi si holku, zploď syna, zasaď strom a postav dům. I takové banality dokáží potěšit. Později zjistíš, že až takové banality to nejsou a může to být velice uspokojující. Návštěva blázince je taky vhodná. V Opavě je to prý hezké. Odpočneš si úplně odříznut od světa okolo. To myslím vážně.

Já jsem kvůli zaměstnání skončil v nemocnici. Mám z toho epilepsii. Výborná věc. Rok jsem se z toho vzpamatovával, ale pak to najednou přišlo. Nic nebyl problém, všechno kolem mě plynulo tak nějak samo, nic mě nerozčilovalo. Ale lhostejnost to nebyla (ta hranice je opravdu tenká). Držel jsem se své práce, svého života. To byl jediný argument proti světu kolem mě.
Jirka

"zploď syna, zasaď strom a postav dům" Tomu se rika mem. Platilo to pred staletimi. Dnes je na planete 7.8 miliardy lidi. Ceny pozemku jsou vysoke.. atd..
V CR pocet obyvatel neustale klesa, coz je komplenzovano imigraci do velice mirneho narustu.
Imigrace do ČR je naprosto nedostatečná.

12
Hmm, tak super, jak se to přeorientování dělá?

Biografický „individuační proces“ vykládají různé teorie různě. Mě je nejbližší Jung (který své poznání i prakticky žil), viz pojem „životního obratu“ v jeho díle. Dále jsou mi blízké anthroposoficky orientované směry, třeba Vzít život do vlastních rukou, i když zrovna Burkhardová je přehnaně schematizující. Perfektní je kniha O smyslu a důležitosti životních krizí: Psycholog k problémům moderního života. V těch knihách jsou i příklady reálných biografií.

Celé je to o nalezení svého životního poslání a smyslu, což se neobejde bez často nepříjemného sebepoznání, opuštění masek a schémat získaných například v rodině apod. Kolem 28 podle mě člověk získává trochu odstup a náhled na prostředí, do kterého se narodil (rodina), v 42 by pak měl být schopen rozhovoru se svou duší a stíny (životní obrat - obrat od vnějšího úspěchu k sobě, k nitru), aby byl schopen co nejvědoměji,  nejsvobodněji a bez egoismu uskutečnit svůj životní úkol (životní etika staví na tom, že každý tento úkol má resp. ho může odhalit).

Takže pokud někoho neuspokojuje život a práce v korporaci, může začít hledat jinde, těch pozitivních příkladů je poměrně dost. Dokonce to neznamená, že musí nutně korporaci hned opustit (byť to bývá asi časté vyústění).
Díky. Na toto téma jsem nikdy nic nečetl, ale ten “přerod” okolo 40 jsem jasně vnímal přesně podle popisu výše. Předtím ovšem nic (těch ~28). Rozhodně jsem ale nikdy nic nevnímal jako krizi, člověk jen prostě začne uvažovat jinak. Připisoval jsem to životním zkušenostem, ale třeba existuje skutečně nějaká silná korelace s věkem.

13
Studium a uplatnění / Re:IT od nuly
« kdy: 18. 08. 2020, 01:54:45 »
Ale tak ja našťastie žijem v civilizovanej a rozvinutej krajine (ČR).
To je vtip?

14
Zretelne mame ruzne pohledy na to co je "strasne dlouho" :-D Autorovi je 28 a pokud Tobe jeste min, tak mi to prijde spis jako mladicka rebel faze, kterou nevis kam nasmerovat ;-) "Vsechno je spatne, vsichni jsou otupeli jenom ja vidim to svetlo na konci tunelu......"

PS: Věk 28 je typicky věk, kdy přestane jít to, co do té doby šlo tak nějak automaticky samo od sebe (nutnost studovat, najít si práci, bydlení, partnera). Člověk se musí začít do činností sám nutit a orientovat se novým způsobem. V tomhle ohledu je dotaz tazatele zcela v řádu věcí. Další zlom je pak kolem 42 roku, kdy se člověk musí ještě mnohem více přeorientovat, viz Jung.
Hmm, tak super, jak se to přeorientování dělá?

15
Vždycky si kladu otázku, jak je možný, že ten svět je takovej, jake je.
Rozdělení IQ ve společnosti je neúprosné.

Stran: [1] 2 3 ... 62