[gelöst] Template von struct innerhalb einer Klasse scheitert



  • EDIT:
    hatte Definition und Implementierung miteinander verwechselt...

    header

    typedef struct PiezoJenaLimits_st{
    	PiezoJenaLimits_st()
    	{
    		StandardLimits();
    	}
    	template < typename T >
    	struct MinMaxSt{
    		MinMaxSt(): min(0), max(0), standard(0) {}
    		T min;
    		T max;
    		T standard;
    	};
    
    	MinMaxSt<double> range_velocity;	
    
    	void StandardLimits()
    	{
    		range_size.voltage.min = -20;
    		range_size.voltage.max = 130;
    	}
    } PiezoJenaLimits;
    

    cpp Datei

    void PiezoJena::setRampSpeed(double value)
    {
    	double min = PiezoJenaLimits.range_velocity.min;
    ...
    

    liefert den Fehler:

    error C2275: 'PiezoJenaLimits': Ungültige Verwendung dieses Typs als Ausdruck
    error C2228: Links von ".min" muss sich eine Klasse/Struktur/Union befinden.

    Warum?, was muss ich anders machen?

    Matthias


  • Mod

    Dein Beispiel ist ziemlich unvollständig und inkonsistent von den Namen her, daher ist es schwer, deinen Fehler nachzuvollziehen. Aber ich würde sagen:

    void PiezoJena::setRampSpeed(double value)
    {
        double min = range_velocity.min;
    }
    

    edit: Wie du siehst, hat das übrigens nichts mit templates zu tun, sondern allgemein mit der richtigen Verwendung von Klassenmembern.


Anmelden zum Antworten