Template-Spezialisierung kompiliert mit VC++ aber nicht mit gcc?



  • Hallo zusammen!

    Ich habe versucht template-code zu modifizieren. Dieser kompiliert und laeuft mit Visual C++ fein, mit gcc kompiliert er allerdings nicht.
    Die Fehlermeldung:

    error: partial specialization 'radix_traits<Radix>' does not specialize any template arguments
    

    hilft mir leider nicht wirklich weiter...

    Der dazugehoerige Code:

    template <unsigned Radix>
        struct radix_traits;
    
        // Binary
        template <>
        struct radix_traits<2>
        {
            /* ... */
        };
    
        // Octal
        template <>
        struct radix_traits<8>
        {
            /* ... */
        };
    
        // Decimal
        template <>
        struct radix_traits<10>
        {
            /* ... */
        };
    
        // Hexadecimal
        template <>
        struct radix_traits<16>
        {
             /* ... */
        };
    
        // arbitrary Radix
        template <unsigned Radix>
        struct radix_traits<Radix>
        {
            /* ... */
        };
    

    Weiss jemand Rat?



  • // arbitrary Radix
    template <unsigned Radix>
    struct radix_traits
    {
        /* ... */
    };
    

    Deines ist zwar nach Standard auch korrekt aber es ist unnatürlich.
    Du schreibst ja auch nicht:

    template<class T>
    struct MiniContainer<T> //<T> unnötig
    {
      //...
    };
    

    MfG, EOutOfReosurces


Anmelden zum Antworten