10

#pragma onceさまざまなコンパイラのディレクティブ サポートの回避策を教えてもらえますか?

ヘッダーで次のようなものを使用したい:

#if _MSC_VER > ... || __GNUC__ > ... || ...

#pragma once

#endif

ブーストソースまたはコードに既に存在している可能性がありますか?

4

3 に答える 3

20

インクルード ガードを使用します。

#ifndef MY_HEADER_H
#define MY_HEADER_H

// ...

#endif    // MY_HEADER_H

これらを の使用と組み合わせて使用​​する場合があります#pragma once

#pragma once

#ifndef MY_HEADER_H
#define MY_HEADER_H

// ...

#endif    // MY_HEADER_H

#pragma onceかなり広くサポートされています。

于 2012-08-27T19:32:10.037 に答える
6

#pragma onceガードを含めるための非標準の代替手段です。

#ifndef HEADER_H
#define HEADER_H

//contents of header

#endif

どちらも、ヘッダー コンテンツが同じ翻訳単位に複数回貼り付けられないようにします。

于 2012-08-27T19:31:15.337 に答える