ホームページ  >  記事  >  バックエンド開発  >  #define NOMINMAX で std::min/max を使用するにはどうすればよいですか?

#define NOMINMAX で std::min/max を使用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-12 07:46:02835ブラウズ

How to Use std::min/max with #define NOMINMAX?

#define NOMINMAX で std::min/max を使用する方法

標準ライブラリ関数 std::max および std を使用するには: :min マクロ NOMINMAX を定義するときは、次に従ってください。手順:

1. std::min/max が使用されるすべてのファイルで NOMINMAX を定義する

マクロを確実に有効にするには、std::max および std を使用するすべてのファイルで #define NOMINMAX を定義する必要があります。 :分これにより、Windows の組み込みの max および min 関数との衝突が防止されます。

2.括弧を使用してマクロ展開をバイパスする

NOMINMAX は、std::min と std::max をマクロとして定義します。前述のエラーが発生した場合は、プリプロセッサがこれらの関数をマクロとして解釈していることを意味します。これを回避するには、関数名を括弧で囲みます。

(std::min)(x, y);  // For std::min
(std::max)(x, y);  // For std::max

関数名を括弧で囲むことにより、プリプロセッサはそれらをマクロ展開ではなく関数呼び出しとして扱います。

注: この解決策は、std::min と std::max を使用するたびに括弧で囲む必要があるため、多少不便です。ただし、これはこの特定の問題の回避策です。

以上が#define NOMINMAX で std::min/max を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。