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: wzotkem
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 3.1.2011 15:45  840
huhAbych byl pochopen. Malloc je C a ne C++, přestože to co mám na mysli nakonec končí také mallocem (ale nemusí). new char[n] by mohlo, ale problém je, že new[] dělá něco navíc a některé implementace mohou alokovat věci, které souvisí alokací polí (například vím, že new std::string[n], připojí před pole číslo udávající počet prvků, ale MSVC ani GCC toto neudělá u new char[n]... což neznamená, že to jinde není jinak.

std::allocator ... upřímě, tak mizerný alokátor snad nemá smysl používat. Já vím, že do C++ patří i STL, ale pokud já mluvím o C++, většinou myslím normu bez STL, nebo minimálně ty části STL, které lze nahradit něčím lepším (například typeinfo, které patří do STL, a nahradit ho něčim jiným nejde, protože je přímo spojeno s neveřejným RTTI interfacem).
bredy 3.1.2011 15:36  839
huhNo řekl bych, že ani jedno, ale doufám, že nejsi jediný čtenář, který by mohl znát odpověď :-) Tak ještě počkám.
huh huh 3.1.2011 10:03  838
Předpokládaje, že nemáš na mysli malloc nebo new char[n], tak mě napadá třeba std::allocator.
bredy 2.1.2011 23:58  837
schválně jestli to někdo ví.

Jak správně alokovat/deallokovat paměť v C++ na zadaný počet bajtů (čili bez konstrukce objektu)
huh huh 30.11.2010 23:57  836
Bredy [835]: char je default implementation defined !
bredy 30.11.2010 22:58  835
char je default signed, takže to vrátí 1. Tady se trošku ukazuje, jak se switch stává nekoncepční v C++. Pominuli nutnost breaků, používat switch v šablonách se opravdu nedoporučuje. Klidně i kdyby to znamenalo, že optimalizace tabulkou skoků by fungovala jen u ordinálních typů a jinak by se to přepisovalo do série ifů.

správně by podle mého názoru mělo být tak, že switch ctí typ selektoru a konvertuje konstanty do stejného typu jako selektor. Bohužel to funguje po staru cečkovsky
huh huh 30.11.2010 17:06  834
Bredy [833]: jen tak nasucho. Je-li char unsigned, tak to vrátí 3, jinak 1.
bredy 30.11.2010 14:07  833
WCKB prosinec
int oops() {
     char ch = 0x80;
     switch (ch) {
     case 0x80:
         return 3;
     case 0x40:
         return 2;
     default:
         return 1;
     }
}

Jak to dopadne?
huh huh 8.6.2010 21:35  832
No pokud vím, tak vc 2008 implementuje c++98 už prakticky bezezbytku, 2010 už implementuje i něco z c++0x (podobně gcc 4.5). Popravdě to, co jsem potřebovat nebyl problém přenést mezi gcc 4 a msvc 2008. Naopak c++ builder 2009 je katastrofa tak na úrovni vc 6 ... Ale je fakt, že já zdaleka nedělám takovou šablonovou magii jako ty :-)
Mě osobně mnohem víc mrzí, že ms kašle na obyčejné céčko a odmítá implementovat c99.
bredy 8.6.2010 20:55  831
huhPohybuju se mezi MSVC a GCC a i když asi GCC je co se týče standardu konzistetní, kolikrát kroutím hlavou, co se tam objevuje za p.čoviny a proč MSVC standard místy nedodržuje :-)
huh huh 8.6.2010 20:52  830
Bredy [829]: Vyznáš. Zrovna standard C++ je v rámci možností relativně snesitelný (ve srovnání třeba s SQL standardem). Tebe navíc nezajímají nějaká komplikovaná pravidla např. u šablon, ale stačí ti zmáčknout Ctrl-F, napsat istream_iterator a počkat, jestli to něco najde nebo ne. A pokud ho nemáš v elektronické podobě, tak ho snadno najdeš i podle obsahu: 24 Iterators library \ 24.5 Stream iterators.
bredy 8.6.2010 20:14  829
A mysliš, že se v něm vyznám?
huh huh 8.6.2010 19:52  828
Bredy [827]: Jsou. Se do toho standardu podívej :-)
bredy 8.6.2010 19:44  827
Ad istream_iterator... nejsem si jist, jestli streamove iteratory jsou součastí poslední normy C++. Jsou v STL, ale ne ve standardu. Nebo jo?
huh huh 8.6.2010 08:07  826
Já samozřejmě netvrdím, že se něco takovýho má používat :-) to byla čistě taková hádanka :-)

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

(c) 2001-2011 Lopuch.cz   
Kontakt