Closed paphio-kitsuki closed 2 weeks ago
何度もdynamic_castを行って、中身がChannelEventかどうかを確認するのがとても負荷がかかるため、 簡単に調べられるように「IsChannelEvent」関数を作成しました。
Event event = Event(fd, revents); こんな感じの文が二ヶ所ありました。 たぶんコンパイラの最適化で、無駄にコピーコンストラクタを呼び出さないように解釈されていたのだと思います。 しかし、コピーコンストラクタをprotectedとして定義したことにより、ここでコピーコンストラクタを呼べないというエラーが発生したため、 Event event(fd, revents); というように、確実にコンストラクタを呼び出すだけになるように修正しました。 無事コンパイルできました。
表題の通りです。 Eventを継承しても良いように、デストラクタにvirtualも付けました。