Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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++_Templates - Fatal编程技术网

C++ 同一类模板参数的不同顺序是否会生成不同的类?

C++ 同一类模板参数的不同顺序是否会生成不同的类?,c++,templates,C++,Templates,我有一个类模板,它通过将属性作为参数分配给模板来生成一个唯一的类。即: template <size_t arg> property; template <typename... properties> class object; object<property<value> > obj; 模板属性; 模板类对象; 对象对象对象; 我要避免的是编译器根据不同的属性排列生成多余的代码,例如: object<property<val

我有一个类模板,它通过将属性作为参数分配给模板来生成一个唯一的类。即:

template <size_t arg> property;

template <typename... properties> class object;

object<property<value> > obj;
模板属性;
模板类对象;
对象对象对象;
我要避免的是编译器根据不同的属性排列生成多余的代码,例如:

object<property<value1>, property<value2> > obj;
objectobj;
共享与以下相同的功能表:

object<property<value2>, property<value1> > obj;
objectobj;

编译器通常都有防止这种重复的方法吗?还是我必须以一种强制编译器使两个对象共享代码的方式进行编程?

这不是重复,因此编译器无法采取任何措施来防止重复。只有当两个或多个类型名相同时才是重复。毫无疑问,
模板类
模板类
的实例化对于任意的A和B都是相同的。

它不是重复的,因此编译器无法采取任何措施来防止它。只有当两个或多个类型名相同时才是重复。毫无疑问,
模板类
模板类
的实例化对于任意的A和B都是相同的。

它不是重复的,因此编译器无法采取任何措施来防止它。只有当两个或多个类型名相同时才是重复。毫无疑问,
模板类
模板类
的实例化对于任意的A和B都是相同的。

它不是重复的,因此编译器无法采取任何措施来防止它。只有当两个或多个类型名相同时才是重复。毫无疑问,
template class
template class
的实例化对于任意的A和B都是相同的。

编译器如何知道您的模板类相对于模板参数是对称的?标签
编译器
应该应用于与模板编程有关的问题编译器或有关编译器详细内部工作的问题。对于有关特定编译器的选项和设置的问题,不要使用
compiler
,使用您感兴趣的编译器的名称。编译器如何知道您的模板类相对于模板参数是对称的?标记
compiler
应应用于有关编译器编程的问题或有关编译器详细内部工作的问题。对于有关特定编译器的选项和设置的问题,不要使用
compiler
,使用您感兴趣的编译器的名称。编译器如何知道您的模板类相对于模板参数是对称的?标记
compiler
应应用于有关编译器编程的问题或有关编译器详细内部工作的问题。对于有关特定编译器的选项和设置的问题,不要使用
compiler
,使用您感兴趣的编译器的名称。编译器如何知道您的模板类相对于模板参数是对称的?标记
compiler
应应用于有关编译器编程的问题或有关编译器详细内部工作的问题。不要使用
编译器
有关特定编译器的选项和设置的问题,请使用您感兴趣的编译器名称。