我们可以编写一个不使用C ++中预处理器的可移植包含保护程序吗?如果是这样,怎么办呢?
答案 0 :(得分:6)
没有
#include
。有几种不可移植的方法(两者都使用预处理器),例如:
#pragma once
和
#import "file.h"
但是标头保护工作无处不在,并且您的编译器可能已经过优化以检查标头保护,因此它甚至不会处理重复的#include
指令。
答案 1 :(得分:1)
这有点不起作用。如果您是#including
个文件,则无论如何都会使用预处理器。你所知道的最接近你所知道的是#pragma once
预处理器指令,但它并不是严格可移植的 - 虽然它可以广泛使用 - 它当然依赖于预处理器。