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

Nudou jsi opuch?
Navštiv 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: mawfkwq
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 7.11.2006 12:27  577
Uz jsem to vyřešil.
Forward deklarace vypadá následovně:
template<...> class A;

Friend deklarace pak vypadá takto:
template<...> friend class A;

gumysh 6.11.2006 15:24  576
Bredy:
AFAIK zavazne poradi inicializace je popsano presne ve standardu, ale jinak mas uplne pravdu: muze to byt maso a je lepsi nespolehat na to... chyba se stane snadno.

K tem specializacim: mas nejake konkretnejsi ukazky, na cem se ti GCC zasekava? Kdyz budu mit cas (a vzpomenu si ;o) ), tak bych zkusil zjistit, v cem je zakopana templata. Nicmene pokud jsi na reseni neprisel ty, nedelam si iluze, ze ti nejak pomuzu.
bredy 6.11.2006 01:08  575
Ted zapasim s templatamy. GCC mi nechce prijmout specializaci template vnitrni tridy uvnitr template
template<...>
class A
{
  template<...>
  class  B
  {...}
  template<>
  class B
  {...}
};

Prý nelze specializovat, protože nadřazená třída není specializací. Když se to snažím vystrčit ven, narážím zase na problém, jak provést forward deklaraci templatové třídy (vše co bere MSVC GCC nesežere)
bredy 6.11.2006 01:05  574
GumyshTohle já ovšem vím, konečně první věc, která se u konstruktorů zdůrazňuje je, že pořadí inicializací volí překladač (často ani nelze předem odhadnout, pořadí, protože když se do toho zamýchá vícenásobná virtuální dedičnost, je to maso).

Takže závěr tedy je, že se jedná jen o varování, které mohu s klidem ignorovat...
gumysh 5.11.2006 22:07  573
Bredy:
Ony totiz members se inicializuji ve stejnem poradi, v jakem jsou deklarovany v deklaraci tridy. Kdyz jejich poradi prohodis v inicializatoru, je to sice take OK - jenze pak to muze nekoho svadet k domnence, ze inicializace probiha v poradi danem vyctem inicializatoru u konstruktoru, ergo muze byt vyuzito nejake podivne zavislosti... a tezko odhalitelny maler je na svete. IMHO to je duvod, proc te GCC varuje, uvedes-li inicializatory v jinem poradi, nez ve kterem se provadeji.
bredy 5.11.2006 19:13  572
GCC v Linuxu, Podivná inicializace konstruktoru
class ChunkMaster
  {
    typedef std::set<Chunk *> ChunkSet;
    typedef std::set<Chunk *> FreeChunkSet;
    typedef ChunkSet::iterator ChunkSetIter;
    typedef FreeChunkSet::iterator FreeChunkSetIter;
    ChunkSet _chunks;
    Chunk *_lastAlloc;
    Chunk *_wholeEmpty;
    Chunk *_lastFree;
    FreeChunkSet _freeChunks;
    unsigned char _maxSlots;
  public:
    ChunkMaster(int maxSlots):_lastAlloc(0),_wholeEmpty(0),_lastFree(0),_maxSlots(maxSlots) {}

Je zajímavé, že když přehodím inicializace _lastFree a _maxSlots, obdržím od GCC warning, že to není vhodné. Co si mám o tom myslet? Znamená to, že je to jen "falešný poplach" a překladač i nadále dodrží normu, nebo to znamená, že nutím GCC normu porušit a předepsat mu jiné pořadí inicializace?

bredy 31.10.2006 15:54  571
http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
dead 31.10.2006 13:22  570
neviete my [povedat ci sa da niekde stiahnut mic. visual C++?
bredy 23.10.2006 22:06  569
http://bredy.jinak.cz/?Par_triku_na_kompresi_primo_v_kodu
bredy 11.10.2006 12:33  568
Vracíme z funkce objekty
anonym 5.10.2006 07:58  567
sqltypes.hAhoj nevite nahodou nekdo kde jsou definovany typy ktery pouziva sqltypes.h jako treba UCHAR, SWORD... atd pac kdyz prekladam program gcc (resp MinGW) me vyhodi chybovy hlasky z sqltypes ze nemuze najit ty typy
johny_g Johny_G - Relaxační terapie pro lopušáky ZDARMA! 4.10.2006 20:54  566
Kterak ve Visual Studiu 2003 deploynu společně s aplikací i knihovny, které musí být ve stejné složce? Nejsem si jist, jestli se zkopírují, když jsou dány jako existing items s build action = Content. Potřebuji to kvůli emulátoru Smartphonu. Do skutečného zařízení bych si knihovny předem nakopíroval, ale u emulátoru tu možnost nemám.
bredy 19.9.2006 23:07  565
Huh
Tak jsem to dopsal
Funkce s volitelným počtem argumentů v C++ II
bredy 13.9.2006 22:02  564
no otazka je jak to konvertujes na ten CString. Zkontroluj si co je v objektu rich editu, a jestli se ti nekde neprepisuje. Nejlepe se to dela nastavenim breakpointu na zmenu adresy *(long *)0x<adresa>Adresu proměnné získáš v debuggeru přes &. Program se ti pak zastaví jakmile dojde k poruše dat na zadané adrese.
anonym 13.9.2006 13:03  563
Ta kdyz uz jsem nasel natovyhle forum s chytryma lidma :o), tak ho budu trochu zneuzivat (kdyby to uz bylo moc, tak staci rict...). Problem se socketama uz jsem vyresil, ale mam jinej.

v klientovi mam proceduru, ktera dostane jako parametr CString a pripise ho do RichEditu. Pouzivam na to metody SetSel(-1, -1) a ReplaceSel(zprava, 0). Pokud tuhle proceduru zavolam na zpravu, kterou si napisu v editu, tak to funguje, ale pokud ji zavolam na zpravu, kterou se dostal pres recv (prekonvertovano z char * na CString mam), tak na SetSel uplne spadne celej program. Tu zpravu jsem si tam nechal vypisovat pomoci MessageBoxu, takze tam predavam to spravny, ale hlavne to pada na SetSel a to s tim nema nic spolecnyho...


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

(c) 2001-2011 Lopuch.cz   
Kontakt