閉じる

‘isfinite’ was not declared in this scope

何故か特定のヘッダを includeしたときだけ*1 エラーになるのよね。
調べていったら、最終的に cmathを読み込んでいる場合だった。
Cでは isfiniteは math.hで defineされているのに cmath内で undefしてるのよね。
で、関数として定義されている C++用の isfiniteのスコープは stdなので件のエラーになっていたと。
math.hではなく cmathを includeして、std::isfiniteを呼ぶようにして解決と。
同じパターンは他にもありそうだな。


*1 今回は boost/archive/xml_oarchive.hpp

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)