Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 生成唯一的模板实例以使用模板_C++ - Fatal编程技术网

C++ 生成唯一的模板实例以使用模板

C++ 生成唯一的模板实例以使用模板,c++,C++,有人知道是否有可能生成一个唯一的模板实例吗?我认为这是一个词,用于每一种用途,即使类型匹配 我的想法是使用某种类型的编译时计数器?像 constexpr int next_count() { // what do I do here? } template struct foo { ... }; template auto make_foo(T val) { ret

有人知道是否有可能生成一个唯一的模板实例吗?我认为这是一个词,用于每一种用途,即使类型匹配

我的想法是使用某种类型的编译时计数器?像

constexpr int next_count() { // what do I do here? } template struct foo { ... }; template auto make_foo(T val) { return foo(val); }
在此方面的任何帮助都将不胜感激。如果没有意义,也可以这么说。

您可以向make\u foo函数传递一个额外的模板参数,并向原始foo类添加一个额外的模板参数,它们将是int,并为每次调用该函数选择不同的值。如果你想让它自动递增,我能想到的最好的办法就是使用_u线。然后可以定义MAKE_FOOtargs、val MAKE_fooval。根据需要添加更多TARG。如果您真的希望每个实例都是一个单独的类(如果要在头文件中),请不要忘记将foo包装在一个匿名名称空间中。

您想实现什么?你的问题不是很清楚不管你打算怎么做,几乎可以肯定有更好的解决方案来解决你的实际问题…