1. ホーム
  2. c++

[解決済み] このC++の機能の名前は何ですか?

2023-07-07 23:33:36

質問

C++のコードを書いていて、関数名を間違えて省略してしまいました。 WSASocket . しかし、コンパイラはエラーを発生させず、私の SOCKET を有効なソケットではなく、整数値 1 と関連付けました。

問題のコードは次のようになるはずでした。

this->listener = WSASocket(address->ai_family, address->ai_socktype, address->ai_protocol, NULL, NULL, WSA_FLAG_OVERLAPPED);

しかし、その代わりに次のようになりました。

this->listener = (address->ai_family, address->ai_socktype, address->ai_protocol, NULL, NULL, WSA_FLAG_OVERLAPPED);

他の言語から来た場合、この に見えます。 は、ある種の匿名型であるように見えます。本当に機能である場合の名称は何でしょうか?

その目的は何ですか?

どこから手をつけていいかわからないのに、探すのは難しい。

どのように解決するのですか?

カンマ演算子†は、左辺を評価し、その値を破棄し、結果として右辺を生成します。 WSA_FLAG_OVERLAPPED は1であり、これが式の結果です。他のすべての値は捨てられます。ソケットは作成されません。


オーバーロードされない限り、†。はい、オーバーロードすることができます。いいえ、オーバーロードしてはいけません。キーボードから離れなさい、今すぐ!