Klasse aus anderem Namespace vorab deklarieren



  • Hallo,

    ich mache irgendeinen Anfaengerfehler bei der Verwendung von Namespaces: Ich habe einen Namespace aux_math

    namespace aux_math {
    
    	class Minus_Infinity
    	{
    	public:
    		Minus_Infinity() { }
    		operator std::string() const { return "-Inf"; }
    	};
    
    	...
    }
    

    dessen Klasse Minus_Infinity ich in nucl_probs.h verwenden will:

    class aux_math::Minus_Infinity;   // Zeile 6
    
    class Nucl_Probs
    {
    	...
    public:
    	virtual boost::variant<double, aux_math::Minus_Infinity> log_prob_ext(int mut_rate, int nucl) const = 0;   // Zeile 18
    };
    

    Das fuehrt dann zu der Fehlermeldung

    ../src/node/nucl_probs.h:6: Fehler: »aux_math« wurde nicht deklariert
    ../src/node/nucl_probs.h:18: Fehler: »aux_math« wurde in diesem Gültigkeitsbereich nicht definiert
    

    Kann mir jemand sagen, wie man das richtig macht?



  • So:

    namespace aux_math
    {
      class Minus_Infinity; 
    }
    


  • Tachyon schrieb:

    So:

    namespace aux_math
    {
      class Minus_Infinity; 
    }
    

    Gehe ich Recht in der Annahme, dass das nicht kuerzer/kompakter geht?



  • ingobulla schrieb:

    Gehe ich Recht in der Annahme, dass das nicht kuerzer/kompakter geht?

    Nein: namespace aux_math{class Minus_Infinity;} 🤡


Anmelden zum Antworten