- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: Fehlermeldung mit template

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    shedepe
    Gast
    Ansonsten musst du beim Aufruf eigentlich auch den Templateparameter angeben also:

    int array[200];
    bubblesort<int>(array,200);

    Es kann sein, dass der Compiler eine autodetection davon machen kann, in der Regel ist aber nicht davon auszugehen.

    PS. ich würde T nehmen für den template Typ, das ist man meiner Ansicht nach eher gewohnt. Sonst denkt man wie es hier geschehen ist dass es ein define ist.

    Btw. außerdem. Du könntest schauen wie viel overhead std::arrray hat. Das hätte an dieser Stelle den Vorteil, dass man sich den length Parameter spart und man dadurch ein bisschen mehr Fehlersicherheit bezüglich des Aufrufs hat.

  2. #2
    HaWe
    Gast
    danke!
    Es funktioniert allerdings bei Arduino offenbar auch ohne <int>, aber ich werde es mir merken, ggf für den Raspi!
    Code:
    
    //---------------------------------------------------------
    // Bubble Sort
    //---------------------------------------------------------
    
    template <typename VTYPE>  void bubblesort(VTYPE *array, int length) {
      VTYPE tmp;
    
      for (int i=0; i<length-1; i++)     {
        for (int j=0; j<length-i-1; j++)  {
          if (array[j] > array[j+1])       {
            tmp = array[j];
            array[j] = array[j+1];
            array[j+1] = tmp;
          }
        }
      }
    }
    
    
    
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      Serial.println("\nSerial started...\n");
      
      int intarray[3]={3,5,1};
      bubblesort(intarray, 3);
      for(int i=0; i<3; i++) Serial.println(intarray[i]);
    
      float floatarray[3]={5.0,1.0,3.0};
      bubblesort(floatarray, 3);
      for(int i=0; i<3; i++) Serial.println(floatarray[i]);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    Ausgabe:
    Code:
    Serial started...
    
    1
    3
    5
    1.00
    3.00
    5.00

  3. #3
    shedepe
    Gast
    Ich habs grade extra nachgeschaut. Das hat nichts mit Arduino und co zu tun sondern, dass bei Function Templates eine Auto Type Detection durchgeführt werden kann.

  4. #4
    HaWe
    Gast
    durchgeführt werden kann
    oder
    durchgeführt wird


    falls optional: dann gäbe es ja sicher makefile-Einstellungen per Compilerflags, die Arduino u.U. fest voreingestellt hat, denn es geht ja offenbar "ohne"...?

    - - - Aktualisiert - - -

    PS,
    meine Variable heißt auch nur "zufällig" array, es ist NICHT ein std::array!

  5. #5
    shedepe
    Gast
    1. Man kann bestimmt Fälle konstruieren in denen das nicht geht. Z.B.wenn man Polymorphie verwendet.
    2. Das sollte auch ein Hinweis sein, dass std::array Vorteil an der Stelle bieten könnte.

  6. #6
    HaWe
    Gast
    Zitat Zitat von shedepe Beitrag anzeigen
    1. Man kann bestimmt Fälle konstruieren in denen das nicht geht. Z.B.wenn man Polymorphie verwendet.
    2. Das sollte auch ein Hinweis sein, dass std::array Vorteil an der Stelle bieten könnte.
    mit std::array hatte ich bislang noch keine Berührung... wie sähe mein bubblesort denn damit alternativ aus?

Ähnliche Themen

  1. Fehlermeldung bei Dev-C++
    Von Zylbath im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 12.10.2009, 15:21
  2. seltsame Fehlermeldung
    Von eis im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 30.10.2007, 18:10
  3. fehlermeldung in asm-routine
    Von robby-fant im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 22.08.2006, 17:47
  4. Fehlermeldung
    Von Proworx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 12.04.2006, 08:49
  5. Fehlermeldung!?!?!?
    Von ricoderrichter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2005, 17:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress