生成用于使用模板的唯一模板实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成用于使用模板的唯一模板实例相关的知识,希望对你有一定的参考价值。
有没有人知道是否可以为每次使用生成一个独特的模板实例(我认为这个词),即使这些类型是匹配的?
我的想法是使用某种类型的编译时间计数器?喜欢
constexpr int next_count() { // what do I do here? } template struct foo { ... }; template auto make_foo(T val) { return foo(val); }
任何有关这方面的帮助将不胜感激。如果它没有意义,那也可以这么说。
答案
您可以将额外的模板参数传递给make_foo
函数,并将额外的模板参数添加到原始foo
类(它们将是int
s),并在每次调用函数时选择不同的值。如果你想让它自动增加,我能想到的最好的事情是使用__LINE__
。然后你可以#define MAKE_FOO(targs, val) make_foo<targs, __LINE__>(val)
。必要时添加更多targs
。如果您真的希望每个实例都是一个单独的类(如果它将在头文件中),请不要忘记将foo
包装在匿名命名空间中。
以上是关于生成用于使用模板的唯一模板实例的主要内容,如果未能解决你的问题,请参考以下文章
使用vscode,新建.vue文件,tab自动生成vue代码模板
使用vscode,新建.vue文件,tab(enter)自动生成vue代码模板
VS Code配置snippets代码片段快速生成html模板,提高前端编写效率