はnoAutoResolve
と呼ばれる:C++オプション/デフォルト引数
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);
}
以降:
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)
{
}
リンカは今未解決の外部に不満であります私は最後の引数を意図的に省略した次の行にある:
service_->send_message(endpoint_, msg, this, [this](int result, msg::TMessagePtr msg){
// .....
});
これはC++では不可能ですか?
エラーLNK1120 1未解決の外部QTServer QTServer.exe 1つの
エラーLNK2019未解決の外部シンボル「パブリック:無効__thiscallのNetworkService :: SEND_MESSAGE(クラスのstd ::のbasic_string、クラスのstd ::アロケータ>、クラスのstd ::このクラスは、次のようにして実装されています:shared_ptr、class QObject *、class std :: function)>) "(?send_message @ NetworkService @@ QAEXV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @ V "$ shared_ptr @ UIMessage @ msg @@@ 3 @ PAVQObject @@ V?$ function @ $$ A6AXHV?$ shared_ptr @ UIMessage @ msg @@@ std @@@ Z @ 3 @@ Z)関数" public " :void __thiscall QTWindow :: ExecuteCommand(void) "(?ExecuteCommand @ QTWindow @@ QAEXXZ)QTServer QTWindow.obj 1
「不幸」を定義してください。それはエラーで苦情を言いますか?もしそうなら、どのエラーですか? – Harald
*リンカー*で、*コンパイラ*ではないことが分かっていれば、おそらく関数(.cpp)の定義をリンクするのを忘れていたでしょう。しかし、実際のエラーメッセージを投稿するのをためらうことはありません:) – rustyx
最後の引数を省略しないと、リンカーは満足していると言っていますか? – stijn