static_assert( double == double )



  • Hallo Forum.

    Geht so etwas in der Art:

    typedef TEST double;
    
    ... // viele Zeilen später
    
    static_assert( TEST == double );
    

    Zur Zeit behelfe ich mir so:

    static_assert( sizeof(TEST) == sizeof(double) );
    

    - aber das finde ich nicht besonders elegant 😞

    Anmerkung: für static_assert benutzte ich zur Zeit BOOST_STATIC_ASSERT, aber das tut ja hier nichts zur Sache.

    Thanx.



  • Bist du dir sicher, das du typedef TEST double; schreiben wolltest? Das ist nämlich nicht valid 😉

    Du könntest ja beispielsweise das so machen:

    static_assert(boost::mpl::equal_to<TEST,double>::value);
    

    Oder, wenn du die mpl nicht verwenden möchtest, dir equal_to<> selbst schreiben:

    namespace my
    {
        template < typename T1 , typename T2 >
        struct equal_to
        {
            static bool const value = false;
        };
    
        template < typename T >
        struct equal_to<T,T>
        {
            static bool const value = true;
        };
    }
    

    BR
    Vinzenz



  • danke... 🙂 🙂


  • Mod

    evilissimo schrieb:

    Du könntest ja beispielsweise das so machen:

    static_assert(boost::mpl::equal_to<TEST,double>::value);
    

    equal_to ist eher (jedenfalls die default-implementation) für wert-vergleiche zuständig; hier ist is_same (typetraits) angebracht.



  • EDIT: Unnötig


Anmelden zum Antworten