我可以对#includes使用令牌粘贴和/或字符串化吗?

丹德森

比方说,我有几个文件,它们都同样命名为:Foo1Bar.hFoo2Bar.hFoo3Bar.h,等等等等。现在,我想自动包括一些main.c在“插件”的风格,那就是,我不想必须记住#include每个人。可以通过令牌粘贴来做到这一点吗?到目前为止,我已经:

// this is the only line I want to have to change if I add Foo4Bar.h
#define FOR_EACH_FOOBAR(T) T(1)T(2)T(3)
//... somewhere else in my code
#define RUN_SOME_FUNC(T) Foo##T##Bar().run();

上面的方法很好用(假设我的所有Foo*Bar.h文件当然都有Foo*Bar带有公共run()方法的。(如果不清楚,我的示例是C ++,但我不认为问题本身#include是,是C ++所特有的) 。

我遇到麻烦的是,如果我也可以用自己的#include陈述来做到这一点代替

#include <Foo1Bar.h>
#include <Foo2Bar.h>
#include <Foo3Bar.h>
#include <Foo4Bar.h>

(对我来说)更改如下内容会更好:

FOR_EACH_FOOBAR(T) T(1)T(2)T(3)T(4)
FOR_EACH_FOOBAR(INCLUDE)

我试过了:

#define INCLUDE(T) #include <Foo##T##Bar.h>

但出现错误:'#' is not followed by a macro parameter,因为它试图对开头部分进行字符串化。我尝试过的任何卷积或旋转都会导致相同(或相似)错误,并且我无法弄清楚如何逃避此错误#include或如何使此错误生效。

有可能,如果可以,如何?如果没有,是否有确切的原因?

破烂不堪

并不是您所需要的,因为#命令是由预处理器处理的,它看起来也不太看是否#扩展产生了另一个命令,但是有一些“生成”#include行的功能,它们仅在#include文本本身之后出现...

https://gcc.gnu.org/onlinedocs/cpp/Computed-Includes.html

在此处搜索“#包括其他内容”:https : //www.slac.stanford.edu/comp/unix/gnu-info/cpp_1.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tclsh:我可以对字符串使用split吗?

来自分类Dev

我可以确定newtonsoft是否可以对字符串进行反序列化?

来自分类Dev

在 Perl 中,您可以对整个匹配字符串使用变量吗?

来自分类Dev

在 linux 中解析带有分隔符的文件后,我可以对字段进行子字符串化吗

来自分类Dev

我是jQuery和JSON的新手。我需要格式化字符串的帮助,以便可以对其进行迭代

来自分类Dev

我可以使用 IF 和 Else 来定义字符串吗?

来自分类Dev

我可以在http查询字符串中使用“ ==”吗?

来自分类Dev

我可以使用通配符比较字符串吗?

来自分类Dev

我可以在字符串内使用向量吗?

来自分类Dev

桌面应用程序,它将对我可以复制和粘贴的字符串进行加密

来自分类Dev

JSON SCHEMA:我们可以对类型做一个或/(字符串/整数)吗?

来自分类Dev

我可以对字符串进行条件检查以查看它是否在LINQ表达式内以“ 00”结尾吗?

来自分类Dev

我可以使用“ f”格式化字符串,使用“ r”同时查找文件吗?

来自分类Dev

我可以仅使用CSS格式化一部分字符串吗?

来自分类Dev

我可以使用查询字符串在Sitecore 7.5中驱动个性化内容吗?

来自分类Dev

我可以使用查询字符串在Sitecore 7.5中驱动个性化内容吗?

来自分类Dev

如果字符串中包含空格,我仍然可以在字符串上使用tsort吗?

来自分类Dev

我可以使用Order By和ToLower在DocumentDB上执行不区分大小写的字符串排序吗?

来自分类Dev

任何人都可以在C ++中使用if语句和字符串来帮助我吗?

来自分类Dev

JUnit可以对所有字符串进行断言吗?

来自分类Dev

jqGrid夏季页脚可以对字符串和数字求和吗?

来自分类Dev

MySQL字符串函数(例如“ TRIM”)可以对1列的SELECT子句起作用吗?

来自分类Dev

我可以对NSComparisonResult使用'> ='吗?

来自分类Dev

我可以在字符串化之前强制未定义的宏扩展吗?

来自分类Dev

我可以将字符串化的JSON数组转换回BigQuery结构吗?

来自分类Dev

我可以在单个通用方法中实现整数的添加和字符串的串联吗?

来自分类Dev

我可以创建混合原语和字符串的可迭代对象吗?

来自分类Dev

SASS 我可以用字符串和列表值组合变量名吗

来自分类Dev

我可以使用字符串或IEnumerable <T>,其中T是字符串或IEnumerable <T>吗?

Related 相关文章

  1. 1

    Tclsh:我可以对字符串使用split吗?

  2. 2

    我可以确定newtonsoft是否可以对字符串进行反序列化?

  3. 3

    在 Perl 中,您可以对整个匹配字符串使用变量吗?

  4. 4

    在 linux 中解析带有分隔符的文件后,我可以对字段进行子字符串化吗

  5. 5

    我是jQuery和JSON的新手。我需要格式化字符串的帮助,以便可以对其进行迭代

  6. 6

    我可以使用 IF 和 Else 来定义字符串吗?

  7. 7

    我可以在http查询字符串中使用“ ==”吗?

  8. 8

    我可以使用通配符比较字符串吗?

  9. 9

    我可以在字符串内使用向量吗?

  10. 10

    桌面应用程序,它将对我可以复制和粘贴的字符串进行加密

  11. 11

    JSON SCHEMA:我们可以对类型做一个或/(字符串/整数)吗?

  12. 12

    我可以对字符串进行条件检查以查看它是否在LINQ表达式内以“ 00”结尾吗?

  13. 13

    我可以使用“ f”格式化字符串,使用“ r”同时查找文件吗?

  14. 14

    我可以仅使用CSS格式化一部分字符串吗?

  15. 15

    我可以使用查询字符串在Sitecore 7.5中驱动个性化内容吗?

  16. 16

    我可以使用查询字符串在Sitecore 7.5中驱动个性化内容吗?

  17. 17

    如果字符串中包含空格,我仍然可以在字符串上使用tsort吗?

  18. 18

    我可以使用Order By和ToLower在DocumentDB上执行不区分大小写的字符串排序吗?

  19. 19

    任何人都可以在C ++中使用if语句和字符串来帮助我吗?

  20. 20

    JUnit可以对所有字符串进行断言吗?

  21. 21

    jqGrid夏季页脚可以对字符串和数字求和吗?

  22. 22

    MySQL字符串函数(例如“ TRIM”)可以对1列的SELECT子句起作用吗?

  23. 23

    我可以对NSComparisonResult使用'> ='吗?

  24. 24

    我可以在字符串化之前强制未定义的宏扩展吗?

  25. 25

    我可以将字符串化的JSON数组转换回BigQuery结构吗?

  26. 26

    我可以在单个通用方法中实现整数的添加和字符串的串联吗?

  27. 27

    我可以创建混合原语和字符串的可迭代对象吗?

  28. 28

    SASS 我可以用字符串和列表值组合变量名吗

  29. 29

    我可以使用字符串或IEnumerable <T>,其中T是字符串或IEnumerable <T>吗?

热门标签

归档