Policies üblich?



  • Hallo.

    Nachdem ich nun langsam aber sicher bei "Modernes C++ Design" einigermaßen durchsteige, habe ich nun vor Policies ausgiebig zu benutzen.
    Dummerweise ist es so, dass den Code außer mir evtl. auch noch andere lesen sollen, die afaik noch nie was von Policies gehört haben bzw. keinen Plan davon haben bzw. keine Lust haben sich da einzuarbeiten...

    Wie verbreitet sind Policies? Kann man die Grundprinzipien ihrer Anwendung bei einem besseren C++-Programmierer erwarten oder ist das was ganz Spezielles, was man garnicht zwingend können muss?

    Wie denkt Ihr darüber?

    thx 🙂



  • simon.phoenix schrieb:

    Wie verbreitet sind Policies?

    Viel zuwenig 😞

    Kann man die Grundprinzipien ihrer Anwendung bei einem besseren C++-Programmierer erwarten oder ist das was ganz Spezielles, was man garnicht zwingend können muss?

    Policies Designen ist extrem komplex und kompliziert, aber damit arbeiten ist extrem einfach. Notfalls kann man ja noch n typedef machen, oder so.

    Allerdings policy basierende Komponenten entwickeln ist leider nicht trivial 😞



  • Was mir gerade zu Policies noch einfällt:

    Ist es sinnvoll rein abstrakte Basisklassen (so zusagen Interfaces) für bestimmte Policies zu schreiben?



  • simon.phoenix schrieb:

    Ist es sinnvoll rein abstrakte Basisklassen (so zusagen Interfaces) für bestimmte Policies zu schreiben?

    Nein, dass würde ja das Template-Policy Konzept irgend wie zerstören 🙂



  • simon.phoenix schrieb:

    Was mir gerade zu Policies noch einfällt:

    Ist es sinnvoll rein abstrakte Basisklassen (so zusagen Interfaces) für bestimmte Policies zu schreiben?

    jein. wenn du sowas machen willst, dann nur um hinterher testen zu können, ob die übergebene policy T nach Base konvertierbar ist, und somit deinen basisansprüchen genügt. Für mehr sollte Base aber auch nicht herhalten müssen, das würde das policy konzept, wie kingruedi es bereits gesagt hat, doch etwas stören.



  • otze schrieb:

    wenn du sowas machen willst, dann nur um hinterher testen zu können, ob die übergebene policy T nach Base konvertierbar ist, und somit deinen basisansprüchen genügt.

    Das können aber Interface checks auch 🙂

    @simon.phoenix:
    Schau dir mal etwas bezüglich "statischer oder compiletime polymorphie" an. Denn man braucht keine Basisklasse für Polymorphie 😉



  • Das können aber Interface checks auch

    nicht so einfach:

    template<class T>
    class Foo{
        STATIC_ASSERT(IsDerived<T,Base>::Value);
    };
    

Anmelden zum Antworten