Mingw 4.7.2では、isnan
への呼び出しのためにコンパイルされないライブラリがあります。 std::isnan
を使用すると、コンパイラは「すべては問題ありません」と言いますが、実際にファイルをコンパイルできます。isdanはstd :: namespaceにありますか?もっと一般的には、std ::が必須か、オプションか、避けたいのですか?
しかし、私はhere(編集:を多分私もhere :-)をチェックしている必要があります)チェックすると、std::
は必要ではないようです。ファイルを追加すると、ファイルは移植可能になりますか?
さらに一般的には、std::
が必要な場合(ポータビリティのために)、オプションであるか避けるべきかを理解する一般的な方法がありますか?
編集問題の起源の間で実際
は、複数のヘッダ介在物が存在することであり、このCPPファイルが<cmath>
が既に含まれている場合(<math.h>
を含むしようとしながら、付属のヘッダのいくつかは、<cmath>
を含みます)。
[ここ](http://en.cppreference.com/w/cpp/numeric/math/isnan)にチェックを入れないでください。 –
@ChristianRau基本的にC++ 98ではこれは存在しませんでしたが、Cから借用するだけでそれを持つことができました!それは面白い! – Antonio
いいえ、いつも通りです。このリンクは、関数名の前に大きな 'std ::'があることを示すだけです。偶然にも、特定の関数isnanはC++ 11でしかサポートされておらず、C++ 98には全く存在しませんでした(CヘッダでもC89/90ヘッダであってC++ 11が使用する)。ですから、CからCを借りることができますが、C++に含まれているCではなく、実際のC99から借りることができます(それは奇妙なミックスでなければなりません)。 –