void value not ignored as it ought to be



  • Arbeite mit DevC++ (gcc) unter Windows und bekomme folgende Meldung:

    .../Dev-Cpp/include/c++/streambuf:131:   
    instantiated from here
    evnthnd.h:27: [b]void value not ignored as it ought to be[/b]
    

    Zeile 27 von evnthnd.h sieht so aus:

    *(_target->*_method)((TMsg*) Msg);
    

    das ganze befindet sich in einer TemplateMethode
    _target == Zeiger auf ein Objekt (TTarget)
    _method == Zeiger auf TTarget::*Method(TMsg*)
    TMsg == Template typename
    Msg ... ist vom Typ ZMRoot und soll zu TMsg (welches von ZMRoot abgeleitet wurde) konvertiert werden.

    diese Streambuf Klasse verwende ich nicht (zumindestens nicht bewußt 🙄 )
    Die Zeile 131 dort lautet

    char_type			_M_pback[_S_pback_size];
    

    Ich seh den Zusammenhang irgendwie nicht...

    Und was bedeutet "void value not ignored as it ought to be" ?



  • Was bedeutet void value not ignored as it ought to be denn normalerweise(nicht in diesem Kontext) ?



  • #include <iostream>
    using namespace std;
    
    void test()
    {
    // egal was...
    }
    
    int main()
    {
            int blah;
            blah = test(); // void value not ignored as it ought to be
    }
    

    Z. B. hier, wenn eine Funktion eigentlich "void" (nichts) zurückliefert, man aber einer Variablen den Rückgabewert zuweisen will, was nicht geht, da es keinen gibt.

    [EDIT]
    Auf Deutsch: Void Wert wird nicht ignoriert, wie es eigentlich sein sollte 😃



  • Wenn Du zB sowas machst:

    void foo(Foobar& bar)
    {
        bar/=42;
        return;
    }
    
    // und dann woanders
    if (foo(myFoobar))
        doSomething();
    

Anmelden zum Antworten