IRC-WIR / ft_irc

0 stars 0 forks source link

EventにErrorStatusを追加&ChannelEventを作成 #69

Closed paphio-kitsuki closed 2 weeks ago

paphio-kitsuki commented 2 weeks ago

表題の通りです。 Eventを継承しても良いように、デストラクタにvirtualも付けました。

paphio-kitsuki commented 2 weeks ago

何度もdynamic_castを行って、中身がChannelEventかどうかを確認するのがとても負荷がかかるため、 簡単に調べられるように「IsChannelEvent」関数を作成しました。

paphio-kitsuki commented 2 weeks ago

Event event = Event(fd, revents); こんな感じの文が二ヶ所ありました。 たぶんコンパイラの最適化で、無駄にコピーコンストラクタを呼び出さないように解釈されていたのだと思います。 しかし、コピーコンストラクタをprotectedとして定義したことにより、ここでコピーコンストラクタを呼べないというエラーが発生したため、 Event event(fd, revents); というように、確実にコンストラクタを呼び出すだけになるように修正しました。 無事コンパイルできました。