#pragma once は安全なインクルードガードですか? 質問する

#pragma once は安全なインクルードガードですか? 質問する

を使用するとコンパイラの最適化が行われ、コンパイルが高速化されると読んだことがあります#pragma once。これは非標準であり、プラットフォーム間の互換性の問題を引き起こす可能性があることを認識しています。

これは、Windows 以外のプラットフォーム (gcc) 上のほとんどの最新コンパイラでサポートされているものでしょうか?

プラットフォームのコンパイルの問題を回避したいのですが、フォールバックガードの余分な作業も回避したいのです。

#pragma once
#ifndef HEADER_H
#define HEADER_H

...

#endif // HEADER_H

心配するべきでしょうか?これにさらに精神力を費やすべきでしょうか?

ベストアンサー1

#pragma once欠点が 1 つあります (非標準であること以外に)。それは、同じファイルが異なる場所にある場合 (これは、ビルド システムがファイルをコピーするためです)、コンパイラはこれらを異なるファイルであると認識します。

おすすめ記事