Xcode Fehler kompilieren von c++ Erwartet Mitgliedsnamen oder ';' nach der Deklaration Bezeichner

Habe ich Probleme mit der überprüfung von Methoden in einem c++ - Bibliothek (openNN) ich versuche es zu compilieren in Xcode. Verwende ich ein Beispiel von einer der Methoden, die, wie ich vermute, sind Sie alle durch das gleiche Problem verursacht.

Header-Erklärung-wo bekomme ich die Fehlermeldung:

Erwartet Mitgliedsnamen oder ';' nach der Deklaration Bezeichner.

void check(void) const;

Funktion definition:

void InverseSumSquaredError::check(void) const
{
    std::ostringstream buffer;

    //Neural network stuff

    if(!neural_network_pointer)
    {
       buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
              << "void check(void) const method.\n"
              << "Pointer to neural network is NULL.\n";

       throw std::logic_error(buffer.str().c_str());      
    }

    const MultilayerPerceptron* multilayer_perceptron_pointer = neural_network_pointer->get_multilayer_perceptron_pointer();

    if(!multilayer_perceptron_pointer)
    {
       buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
              << "void check(void) const method.\n"
              << "Pointer to multilayer perceptron is NULL.\n";

       throw std::logic_error(buffer.str().c_str());      
    }

    const unsigned int inputs_number = multilayer_perceptron_pointer->count_inputs_number();
    const unsigned int outputs_number = multilayer_perceptron_pointer->count_outputs_number();

    if(inputs_number == 0)
    {
       buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
              << "void check(void) const method.\n"
              << "Number of inputs in multilayer perceptron object is zero.\n";

       throw std::logic_error(buffer.str().c_str());      
    }

    if(outputs_number == 0)
    {
       buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
         << "void check(void) const method.\n"
         << "Number of outputs in multilayer perceptron object is zero.\n";

       throw std::logic_error(buffer.str().c_str());      
    }

    //Mathematical model stuff

    if(!mathematical_model_pointer)
    {
        buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
               << "void check(void) const method.\n"
               << "Pointer to mathematical model is NULL.\n";

        throw std::logic_error(buffer.str().c_str());     
    }

    //Data set stuff 

    if(!data_set_pointer)
    {
       buffer << "OpenNN Exception: InverseSumSquaredError class.\n"
              << "void check(void) const method.\n"
              << "Pointer to data set is NULL.\n";

       throw std::logic_error(buffer.str().c_str());      
    }

    //Final solutions error stuff

}

Wenn ich die definition in den header

void InverseSumSquaredError::check(void) const;

Ich am Ende mit der Fehlermeldung:

Zusätzliche Qualifikation auf den 'check'

Ich bin derzeit mit dem Dialekt von C++98 und die Bibliothek libc++.
Xcode ist gesetzt zum kompilieren von Quellen wie Objective-C++ kümmert sich um die meisten anderen Fehler.

Ich kann nicht an nichts anderes denken relevant für dieses Problem, es hatte mich ratlos für Stunden, so dass jede Art von Hilfe ist sehr willkommen.

  • das ist nicht 'c', so entfernen Sie bitte die 'c' - tag
  • ist das als reines C++? oder wollen Sie für die Verwendung des gemischten Modus für OSX/iOS/Cocoa-Zwecke?
  • Es wird gemischt mit Objective-c auf OS X, iOS-evtl.
  • Hilft es, wenn Sie ändern Sie den Namen der Funktion? Vielleicht check #ist irgendwo definiert. Auch können Sie zeigen ein paar Zeilen, bevor die header-Erklärung, Sie könnte fehlt ein Semikolon
  • check scheint es nicht zu sein, definiert an anderer Stelle. Obwohl nach der änderung es kompiliert einwandfrei. Ich denke, Xcode nicht wie der name der Methode.
  • scheint ein Problem zu sein für einige-siehe stackoverflow.com/questions/16766843/... und github.com/USCiLab/cereal/issues/104 -- könnten Sie versuchen, mithilfe der #define-Ansatz beschrieben, in dem zweiten link. HTH.

InformationsquelleAutor user1899201 | 2015-07-27
Schreibe einen Kommentar