Ich habe ein Verfahren mit einem optionalen/vorbelegt letzten Argumente definiert genannt noAutoResolve
wie folgt:C++ optional/default Argument
typedef std::shared_ptr<IMessage> TMessagePtr;
class NetworkService : public IConnectionManagerDelegate, public net::IStreamDelegate
{
public:
void send_message(std::string identity, msg::TMessagePtr msg, QObject* window, std::function<void(int, std::shared_ptr<msg::IMessage> msg)> fn, bool noAutoResolve = false);
}
und höher:
void NetworkService::send_message(std::string endpoint, msg::TMessagePtr msg, QObject* window, std::function<void(int res, std::shared_ptr<msg::IMessage> msg)> fn, bool noAutoResolve)
{
}
Der Linker ist nun unglücklich über nicht aufgelöste externe in der folgenden Zeile, in der ich das letzte Argument absichtlich weggelassen habe:
service_->send_message(endpoint_, msg, this, [this](int result, msg::TMessagePtr msg){
// .....
});
Ist das in C++ nicht möglich?
Fehler LNK1120 1 nicht aufgelöste externe QTServer QTServer.exe 1
Fehler LNK2019 nicht aufgelöstes externes Symbol „public: void __thiscall NetworkService- :: send_message (Klasse std :: basic_string, Klasse std :: Allocator>, Klasse std :: shared_ptr, Klasse QObject *, Klasse std :: function)>) "(? send_message @ NetworkService @@ QAEXV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ V $ $ shared_ptr @ UIMessage @ msg @@@ 3 @ PAVQObject @@ V? $ Funktion @ $$ A6AXHV? $ Shared_ptr @ UIMessage @ msg @@@ std @@@ Z @ 3 @@ Z) referenziert in der Funktion "public : void __thiscall QTWindow :: ExecuteCommand (void)“(? ExecuteCommand @ QTWindow @@ QAEXXZ) QTServer QTWindow.obj 1
definieren „unglücklich“. Beklagt es sich mit einem Fehler und wenn ja, welcher Fehler? – Harald
Wenn Sie sicher sind, dass der * Linker * und nicht der * Compiler * unglücklich ist, haben Sie wahrscheinlich vergessen, die Definition der Funktion (.cpp) zu verknüpfen. Aber zögern Sie nicht, die eigentliche Fehlermeldung zu schreiben :) – rustyx
Sie sagen, der Linker ist glücklich, wenn Sie das letzte Argument nicht auslassen? – stijn