私は C++ の基本にかなり精通していますが、経験が不足しています (主に Java のコード)。
私は、標準のビジュアル スタジオ クラス limits.h を使用する大規模なオープン ソース プロジェクトを拡張しています。ここには、次のコードがあります。
template<> class numeric_limits<double>
: public _Num_float_base
{ // limits for type double
public:
typedef double _Ty;
static _Ty (max)() _THROW0()
{ // return maximum value
return (DBL_MAX);
}
このコードを含む minwindef.h を使用する別のオープン ソース プロジェクトをインポートしました。
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
この行のため、ビルドが壊れるようになりました
SUMOReal distance = std::numeric_limits<SUMOReal>::max();
コンパイラは、パラメーターなしで max() が使用されていると不平を言います。この問題を回避する簡単な方法はありますか? または、インポートしたライブラリを単に使用しないことはできますか? :/
これが十分に明確であることを願っています。提案に感謝します!!