所以我知道如何把一个包括后卫在自己的头文件与标准C++包括后卫
#ifndef ...
#define ...
现在,我的问题是关于包括不属于我自己的库。将是一个很好的例子。我有需要使用字符串的头文件,所以我下面
foo.h中
#ifndef FOO_H
#define FOO_H
#include <string>
... code etc ...
#endif
现在,如果我有一个称为另一头文件..让说,bar.h
,这也需要使用<string>
,我该如何防止多种夹杂物? STL是否已包含警卫?
微软使用'#pragma once' - 它们专有的标头卫士版本。这很好:“STL”现在是编译器的一部分,因此可以使用特定于编译器的语言扩展。 – MSalters