Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Což takhle
dát si Lopuch?

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: lskgczx
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
huh huh 2.9.2012 21:38  876
Sekory [875]: no reference je v zasade ukazatel, takze pokud ti ji prekladac nezoptimalizuje a dostanes se k nemu, tak to neni takovy problem:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i=1;
    int j=2;
    int& r = i;
    int* a[1];
    cout << r << endl;
    int** pr= a + 1;
    *pr = &j;
    cout << r << endl;
    j = 4;
    cout << r << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}

sekory Sekory The journey of thousand miles - starts with a single step. 2.9.2012 21:10  875
Schvalne, jestli nekdo z vas vi, jak zmenit referenci. Standardne zmenit po inicializaci nejde, ale existuje takovy "hack" jak zmenit jde. :)
bredy 30.7.2012 09:44  874
Často to používám z toho důvodu, abych skryl implementrační detaily v hlavičkách. Například pokud třída potřebuje nějaké další třídy, které nejsou potřeba pro ovládání té třídy (jsou potřeba jen pro její konstrukci), pak používám interface + implementace + továrnu.

interface definuje funkce, kterým lze objekt ovládat, implementace dědí interface a obsahuje vše, co je potřeba k zajištění činnosti objektu a továrna se stará o to, aby se dal objekt instanciovat bez nutnosti mít naincludované všechny definice pro přeložení třídy.
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 20:58  873
huh: Přesně tak, abstraktní bez implementace. Trochu mi to příjde jako interface v Javě (Javu teda moc neznám...). Každopádně díky.
huh huh 18.7.2012 20:31  872
Sekory [871]: Myslíš čistě virtuální (abstraktní), tj. bez implementace? Tak snad leda, pokud by mělo smysl vytvářet i jiné potomky, byť zatím má jen jednoho. (Druhá možnost je overengineering :-) )
sekory Sekory The journey of thousand miles - starts with a single step. 18.7.2012 18:46  871
K čemu se používá base class, která má všechny metody virtuální, pokud z dění jen jedna další třída, která ty metody implementuje? Nevidím k tomu důvod, ale narazil jsem na to.
sekory Sekory The journey of thousand miles - starts with a single step. 25.6.2012 13:58  870
Tak jsem se rozhodl, že budu používat Eclipse. Už jsem v tom něco malého dělal (v Javě teda) a případně to má člověk i pod Windowsi.
sekory Sekory The journey of thousand miles - starts with a single step. 24.6.2012 21:19  869
C++ IDE pod LinuxemJaké IDE na C++ byste doporučili pod Linux? Existuje toho celkem dost, což rozhodování moc neulehčí. Psát to v nějakém Editoru a pak to kompilovat z příkazové řádky se mi zdá poněkud nevyhovující (ačkoli určitě to má svoje výhody).
bredy 29.3.2012 11:14  867
huhJá jsem taky mimo. Mě jen děsíc výčet featur, které tam mají. Pro ně je to samozřejmě jednoduší, protože spousta šifer má společný základ. Ale i beztak z toho vzniká moloch a nafukuje to kód.

Nicméně se na to podívám. O Crypto++ jsem už taky zavadil.
huh huh 29.3.2012 01:49  866
Bredy [858]: Už je asi pozdě, nicméně jsem narazil na LibTomCrypt, což by to mohlo umět. Jinak teda taky třeba Crypto++. Přiznávám se, že téhle oblasti vůbec nerozumím, takže pokud jsem mimo, tak se omlouvám.
bredy 6.3.2012 11:01  865
No na tomhle řešení jsou trošku problém dva posuny. On ten posun nemusí být na CPU implementovan zrovna pomocí multiplexu, ale n x posouvání shiftregistru (trvající n taktů). Tak jsem se snažil tam mít minimum posuvů, víceméně jen na výpočet masky. Ale je fakt, že tohle je jedno z řešení. Nicméně, lze to udelat s jednim shiftem, a exustujou dvě varianty.
king King Born to be king - ... 6.3.2012 10:54  863
Prox by clovek musel zapomenout na pouziti OR a AND pro nastaveni/vymazani?

reseni v pythonu:

def set_bit(n, pos, val):
return (0b11111111 ^ 1 << pos) & n | val << pos)
bredy 6.3.2012 09:54  862
Kvíz pro začátečníkyNapište funkci

int setBit(int n, int bit, int val)


co nejjednodušší bez použití IFu ani jiného rozhodování.
n = vstupní číslo
bit = pozice bitu
val = hodnota bitu
vrací výsledné číslo.

Dá se v pohodě, ale člověk musí zapomenout na klasický postup použití OR pro nastavení a AND pro vymazání. Nicméně superskalární procesor vám poděkuje.
gumysh 12.2.2012 16:57  861
Tuším, že existuje i light verze, která obsahuje jen nutné minimum. Ale i kdyby, tak příslušné knihovny, o které zrovna tobě jde, mají cca 1 MB, což je stále ještě rozumné.

OpenSSL jsem navrhnul proto, že je to osvědčená, používaná a navíc portabilní knihovna… no a navíc jsem se s ní nedávno nepřímo potkal ;o) Ale jen (velmi) nepřímo, jelikož to není zrovna moje pracovní náplň; nicméně její crypto API (dle http://www.openssl.org/docs/crypto/crypto.html) vypadá, že obsahuje vše, co bys mohl chtít… I když pravda, ty své dvě vysněné funkce by sis musel z toho poskládat.

Pokud narazíš na něco jednoduššího a stejně dobrého, pochlub se svým objevem.
bredy 31.1.2012 21:31  860
GumyshNo nevím, celá knihovna má zabalená 6MB a obsahuje několik desítek sifrovacích technik a hashovacích funkcí. Pořád si myslím, že někdo musel nad tím napsat nějakou jednoduchou nadstavbu. Nemám bohužel čas to zkoumat a testovat a ladit. Chtěl jsem jen jednoduše podepsat textový soubor tak, aby si desktopová aplikace ověřila, že je pravý a nezměněný, přičemž veřejný klíč bude napsán uvnitř binárky té aplikace (protože se dá extrahovat, nemohu použít jen tak nějaký salt k hashovací funkci).

Celá aplikace má cca 2MB. Přijde mi hloupé kvůli tomu instalovat XMB sdílených knihoven proto, abych si něco elektronicky podepsal.

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt