Fehlerklasse mit verschiedenen Fehlercodes bei jeder Instanz



  • Mein Ziel ist es eine Fehlerklasse zu definieren, bei der ich für jede Instanz getrennt andere enummerierte Fehlercodes definieren kann.
    Meine Lösung ist hier gezeigt:

    enum class EnumClassT;
    
    template <class EType>
    class ErrorBaseT{
    public:
    	typedef EType ErrcodeT;
    private:
    	errcodeT Errcode;
    public:
    	errcodeT getErrCode(void);
    	int setError(errcodeT err);
    	ErrorBaseT(errcodeT err);
    };
    
    class ErrorMayHappenT{
    public:
    
    	class ErrorMayHappenErrT:ErrorBaseT<EnumClassT>{
    	public:
    		enum class ErrcodeT{NOERR, ERROR1, ERROR2, NOERRCODE};
    	}
    ...
    ;
    

    Leider muss ich in jeder Instanz
    die Zeile

    enum class ErrcodeT{NOERR, ...};
    

    neu anpassen. Ich würde gerne auf die Angabe des Namens der Enum verzichten, so dass auch alles noch funktioniert, wenn im Template errcodeT mal anders definiert ist. Am liebsten würde ich die Argumente Liste der enum class {NOERR, ...} über den Template Parameter einspeisen und mich im Template aber schon auf einen allgemeinen enum Typ festlegen. Die enum class in ErrorMayHappenT lokal definieren und dann als Template Parameter übergeben ist auch doof, weil ja die Aufzählung logisch zu ErrorMayHappenErrT zugeordnet werden sollte und nicht zur übergeordneten Klasse.


Anmelden zum Antworten