6 Stimmen

Was ist der Sinn von "typedef sometype sometype"?

In letzter Zeit bin ich auf die folgende Konstruktion im Code gestoßen:

typedef sometype sometype;

Achten Sie bitte darauf, dass "sometype" für den absolut gleichen Typ steht, ohne irgendwelche Zusätze wie "struct" etc.

Ich frage mich, wozu es nützlich sein kann?

UPD: Dies funktioniert nur bei benutzerdefinierten Typen.

UPD2: Der eigentliche Code befand sich in einem Vorlagenkontext wie diesem:

template <class T>
struct E
{
   typedef T T;
   ...
}

0voto

Notinlist Punkte 15635

Neue Idee! Bestimmte Programmierclubs mögen die ausgiebige Verwendung von typedefs...

zoo/tiere/typen.h :

namespace zoo
{
    namespace animals
    {
        typedef size_t Count;
        // ...
    } // namespace animals
} // namespace zoo

zoo/tiere/zebra.h :

#include "zoo/animals/types.h"

namespace zoo
{
    namespace animals
    {
        class Zebra {
        public:
            typedef Count Count;
            Count getLegCount() const;
            // ...
        }; // class Zebra
    } // namespace animals
} // namespace zoo

main.cpp :

#include "zoo/animals/zebra.h"

int main()
{
    typedef zoo::animals::Zebra Zebra;
    Zebra z;
    Zebra::Count n = z.getLegCount();
    // Not as zoo::animals::Count
    // No using namespace zoo::animals required,
    // we are using just one item from there, the Zebra.
    // Definition of Zebra::Count may change, your usage remains robust.
    return 0;
}

Ich habe gerade eine ähnliche Situation an meinem Arbeitsplatz. Die Übersetzung ist vielleicht ein bisschen albern, aber ich wollte sie schnell präsentieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X