cannot pass objects of non-POD type

Alles rund um die Programmierung mit Qt
Antworten
Lepido
Beiträge: 4
Registriert: 23. November 2006 13:55

cannot pass objects of non-POD type

Beitrag von Lepido »

Hallo,
ich habe folgendes Problem:

habe mehrere QList<double> listen z.b list1, list2, list3

damit rufe ich die Funktion Write auf:

write(3,list1,list2,list3);


die Funktion write wird wie folgt declariert:

Code: Alles auswählen

int write(const int n,const QList<double> S_L,...)
{...}
beim compilieren bekomme ich folgende Warnung:

"warning: cannot pass objects of non-POD type 'class QList<qreal> through '...'; call will abort at runtime.

ich würde über jede Hilfe freuen,
danke in voraus,
Lepido
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ein bischen mehr Code oder ein Testcase wären da schon hilfreich...

Code: Alles auswählen

#include <QList>

static int write(int i, const QList<double> &l1)
 {
  return 0;
 }

int main(int argc, char *argv[])
{
    QList<double> l1;
    
    write(1, l1);
    
    return 0;
}
funktioniert bei mir prima
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Hier findest du eine Erklärung warum das nicht funktioniert bzw. was POD ist.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Also wohl doch das was ich mir gedacht habe, aber mangels Sourcecode nicht verifizieren konnte... *lol*
Nenn die Funktion um oder includiere keine Standard-C Header.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Lepido
Beiträge: 4
Registriert: 23. November 2006 13:55

Beitrag von Lepido »

Hallo,
Danke für die schnelle Hilfe,

Leider kriege ich immer noch die warnung. hier ist mein code:

Code: Alles auswählen

write(string,3,ShutterSollWerten_L,ShutterIstWerten_L,KorrSollWerten_L);



int write(QString filename,
             int n,
             const QList<double> &S_L,
              ...
           )
{
  va_list ap;    
 

 va_start(ap, S_L);

  .
  .
  .
  QList<double> currentlist_L = va_arg(ap,QList<double>);  <--- an diese zeile gibt er die Warnung aus.
 
  va_end(ap);

 
  return 0;
}

danke nochmal für die Hilfe,
tschüss,
Lepido
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Lepido hat geschrieben: Leider kriege ich immer noch die warnung. hier ist mein code:
Liest Du überhaupt was wir geschrieben haben?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten