gpt4 book ai didi

c++ - 将包含的平台 header 的范围限制为仅包含它的 header 文件?

转载 作者:搜寻专家 更新时间:2023-10-31 02:20:22 24 4
gpt4 key购买 nike

我正在处理一个 C++ 库项目。我需要包含一个特定于平台的 header 以访问某些 #defines。问题是,我只希望平台的标题在我的标题中可见。对于那些包括我的标题的人,我不希望他们看到额外的符号。

我考虑过使用 C++ 命名空间来包含/控制符号可见性,但它不起作用(授予,#define statements within a namespace)。据我所知,像 --exclude-libs,all 这样的选项仅适用于链接时的库符号,不适用于标题符号。

我还考虑过使用平台 header 中我需要的符号,然后取消定义它包含的所有符号。但是我不知道如何使用通配符#undef platform_header.h/*

Including a header file into a header file without exposing it's content to the includer 也有类似的问题.他这样做是为了限制 IDE 自动完成,由于不同的要求,它会产生与我需要的不同的答案。

如何将包含的平台 header 的可见性限制为仅我的库 header ?

最佳答案

通常,您无法避免宏名称污染。您可以使用的唯一工具是编译器防火墙,用于在实现文件中包含 C(或只是麻烦的) header 。然后,您可以在头文件中为其提供自己的 C++ 接口(interface)。

关于c++ - 将包含的平台 header 的范围限制为仅包含它的 header 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com