0

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

template <size_t arg> property;

template <typename... properties> class object;

object<property<value> > obj;

我要避免的是编译器根据不同的属性排列生成多余的代码,例如:

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

共享相同的功能表:

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

编译器是否通常有一些措施来防止这样的重复,或者我是否必须以强制编译器使两个对象共享代码的方式进行编程?

4

1 回答 1

3

这不是重复,因此编译器无法采取任何措施来防止它。如果两个或多个类型名称相同,则只是重复。没有什么可说的,对于任意的 A 和 B,and 的实例化都是一样的template class<A,B>template class<B,A>

于 2013-11-07T04:35:48.413 回答