Vlákno názorů k článku Máte dost paměti? od martin kukacka - Clanek byl minen presne tak, jak se pise...

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 4. 2005 11:22

    martin kukacka (neregistrovaný)
    Clanek byl minen presne tak, jak se pise v jedne reakci - jako uvod do problematiky (dejme tomu pro stredne - co to je? - pokrocile programatory). Nedotazene veci (napr. neefektivni spojovy seznam) jsou v clanku zmineny. Samozrejme, ze existuje rada pristupu, jak se vyhnout memory leakum (ze by snad namet na pokracovani?), ale kazdy ma krome vyhod take nevyhody ci omezene pouziti. Napr. zminene smart pointry - standardni std::auto_ptr ma "move" semantiku, takze kod
            auto_ptr<NejakaTrida> a(new NejakaTrida);
    	auto_ptr<NejakaTrida> b;
    	b=a;
    	cout << "a:" << a.get() endl;
    
    by mel vypsat, ze a je NULL (myslim, ze treba MSVC to nedela, ale to je jedno, norma si to zada). Existuji i lepsi smart pointry, ty ale zase nejsou standardizovane. Nekdy se proste smart pointry nehodi...
  • 5. 4. 2005 10:29

    olin
    Ano, auto_ptr je jen takova kravinka (prakticky nepouzitelna) a zrovna moc chytra neni (ve skutecnosti to zrovna smart-pointer neni). Jedna implementace je napr. v baliku boost. Ve vicevlaknovem prostredi je ale vzdycky otazka, ktere prostredky mame (linux-threads, Win32...), ale knihovna boost je psana prenositelne a ma vlastni implementaci vazanou na konkretni system (bezi jak pod Linuxem, tak pod Win32). Ale jak bylo (nekde) receno, je to dalsi knihovna, na ktere jste zavisli.

    Ja pouzivam vlastni implementaci a kdyz se spravne pouzivaji template, pak staci jen zmenit implementaci mutexu+semaforu a muze to pracovat pod libSDL (kdyz si zrovna hraju s libSDL), nebo treba jen s linux-threads, nebo jak si clovek zamane (zmena dvou kratickych trid a vsechno ostatni zustava).