ここからは、select()「複数のファイル記述子を監視し、1つ以上のファイル記述子が何らかのクラスのI / O操作(入力可能など)に対して「準備完了」になるまで待機する」ために使用されます。次に、ソケットプログラミングに関するBeejのガイドselect()を調べました。これは、ソケットファイル記述子を監視するために使用されていました。
要するに、チュートリアルとマニュアルページはそれがファイル記述子select()で動作すると言っていました。しかし、オブジェクトを監視するために使用するコードに出くわしました。コード:select()
class SomeObject
{
    public:
        static SomeObject *_pInstance;
        //...some other methods...
}
SomeObject *SomeObject::_pInstance = new SomeObject();    
SomeObject &refObj = *SomeObject::_pInstance;
fd_set fdAllSet, fdReadableSet;
int nReadyHandles = 0;
FD_SET( refObj, &fdAllsSet ); //<---this line
while (1)
{
    fdReadableSet = fdAllSet;
    nReadyHandles = select( maxFd+1, &fdReadableSet, NULL, NULL, &someWaitTime );
    while (nReadyHandles > 0)
    {
        if (FD_ISSET(refObj, &fdReadableSet))
        {//do something
            FD_CLR(refObj, &fdReadableSet);
        }
    }
}
だから問題は、select()私の「オブジェクトの準備ができている」かどうかをどのように判断するのかということです。そしてFD_SET()、最初の引数がではintなくであると想定しているのに、なぜコンパイルエラーが発生しないのrefObjですか?