C2886 - Wieso klappt das nicht?



  • Hallo Forum,

    wieso funktioniert folgendes nicht?

    ** test.cpp **

    #include <memory>
    
    class MyClass
    {
        using std::tr1::shared_ptr;
    
        shared_ptr< int > m_int_ptr;
    }; // MyClass
    
    int main()
    {
    }
    

    Hier wird mir vom Compiler (MSVC90) immer der Compilerfehler C2886 vorgeworfen (für die Zeile using ... )
    Warum funktioniert das nicht?


  • Mod

    using in Klaasendefinitionen kann nur für Bezeichner in Basisklassen verwendet werden. std::tr1 ist keine Basisklasse von MyClass.
    An dieser Stelle könntest du übrigens auch mit typedef arbeiten.


Anmelden zum Antworten