warning C4018: '<' : signed/unsigned mismatch
このコードからa を削除できません:
SOCKET s;
fd_set set;
FD_CLR(s,&set);
問題は VS2005 の FD_CLR の実装内にあるように思われますが、実際には大きな問題ではなく、非常に煩わしいだけです。警告を生成しないこのコードの移植可能な同等のバージョンはありますか? (注: 警告をオフにする #pragma があることは知っています。また、FD_CLR マクロが実際に完全に機能することも知っています。警告なしでコードを記述する方法を探しているだけです)。
編集:最終的に、何が起こっているのかを発見しました:サードパーティの .h には、(間違った!!!)「u_int」の「int」としての再定義が含まれています。そのため、コンパイラは FD_CLR 内の u_int の比較に対して不平を言います。私を恥じてください。