abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:00 | Nová verze

    Všem vše nejlepší do nového roku 2026.

    Ladislav Hagara | Komentářů: 6
    dnes 13:33 | Zajímavý software

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.60. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Zajímavý článek

    Daniel Stenberg na svém blogu informuje, že po strncpy() byla ze zdrojových kódů curlu odstraněna také všechna volání funkce strcpy(). Funkci strcpy() nahradili vlastní funkcí curlx_strcopy().

    Ladislav Hagara | Komentářů: 1
    dnes 03:00 | Nová verze

    Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 18:55 | IT novinky

    Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.

    Ladislav Hagara | Komentářů: 0
    včera 03:33 | Bezpečnostní upozornění

    V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.

    Ladislav Hagara | Komentářů: 0
    29.12. 23:11 | IT novinky

    Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.

    NUKE GAZA! 🎆 | Komentářů: 11
    29.12. 15:55 | Komunita

    FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.

    NUKE GAZA! 🎆 | Komentářů: 7
    29.12. 15:44 | Zajímavý software

    K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.

    NUKE GAZA! 🎆 | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (31%)
     (1%)
     (25%)
     (1%)
     (1%)
     (1%)
     (11%)
     (10%)
     (18%)
    Celkem 212 hlasů
     Komentářů: 22, poslední dnes 15:34
    Rozcestník

    Dotaz: c++ šablonová funkce není nalezena?

    4.5.2010 08:32 vencas | skóre: 32
    c++ šablonová funkce není nalezena?
    Přečteno: 245×
    Zdravím,

    kompilátor ignoruje šablonovou funkci, kterou by měl (podle mě) použít a nevím si už rady. Kód vypadá zhruba tímto způsobem (bohužel to musí být složité):
    using std::max;
    typedef double Real;
    // obezlička na template alias (ano, vím že je v c++0x, ale gcc neumí)
    template<typename Scalar> struct Vector3{ typedef Matrix<Scalar,3,1> type; };
    typedef Vector3<Real>::type Vector3r;
    // funkce
    // argumenty byly původně const, ale nemá to vliv na výsledek
    template<typename Scalar> typename Vector3<Scalar>::type componentMaxVector(typename Vector3<Scalar>::type& a, typename Vector3<Scalar>::type& b){ return typename Vector3<Scalar>::type(max(a.x(),b.x()),max(a.y(),b.y()),max(a.z(),b.z()));}
    
    Normálně to funguje, až na to, že v kódu:
    Vector3r a,b,c;
    // přiřazení do a,b
    c=componentMaxVector(a,b);
    
    kde by se měla podle mě zavolat šablonová funkce se Scalar=Real (tedy Vector3<Scalar>::type=Vector3r) mi g++ (4.4 i 4.5) nadává:
    error: no matching function for call to 'componentMaxVector(Vector3r&, Vector3r&)'
    
    Dokáže někdo vysvětlit, proč g++ tu šablonu nevidí?

    Díky.

    Řešení dotazu:


    Odpovědi

    Josef Kufner avatar 4.5.2010 08:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?
    A máš tu šablonovou funkci celou v hlavičkovém souboru? Ono C++ má takovou drobnou chybu v návrhu...
    Hello world ! Segmentation fault (core dumped)
    4.5.2010 10:08 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?

    Kdyz mate funkci deklarovanou takhle, tak vam c++ argumenty nevydedukuje. Ale takhle to pujde:

    template<typename Scalar>
    Matrix<Scalar, 3, 1> componentMaxVector(const Matrix<Scalar, 3, 1>& a, const Matrix<Scalar, 3, 1>& b)
    {
    	return typename Vector3<Scalar>::type(max(a.x(),b.x()), max(a.y(),b.y()), max(a.z(),b.z()));
    }
    
    4.5.2010 10:32 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?
    Díky, vyzkouším. Ale proč? Vždyť je to typedef...
    4.5.2010 11:18 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?
    Potvrzeno, funguje. Ale nechápu...
    4.5.2010 12:30 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?
    Prave kvuli tomu typedefu, parametry sablony podle vnoreneho typu dedukovat nelze. Vizte standard, nebo treba tohle.
    4.5.2010 13:00 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: c++ šablonová funkce není nalezena?
    Bezva, díky moc.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.