2012-03-21 26 views
1

在处理模板类的不需要的数据类型时,什么被视为“良好实践”?模板类和处理不需要的类型声明的良好实践

比方说,我们有一个函数在模板类中进行数字乘法,但该类的驱动程序文件声明类型为string的类实例。

我已经给出了这样一个观点,即对于创建驱动程序文件的人来说,这是个人问题,并且您需要完成的一切都是头文件/实现文件中的正确函数序言。

我想知道是否有与模板有关的这个问题的一般做法。在处理它们之前,你是否在类中检查了你的类型(我猜,在某种程度上这会破坏模板的目的),还是你定义了特定类型的行为(尽管这也看起来像是失败了)?

或者您是否正确记录您的代码,并让使用您的类的程序员采取预防措施?

+0

是不是这个问题不一样http://stackoverflow.com/questions/148373/c-restrict-template-function – 2012-03-21 17:51:23

+0

@GuillaumeSchub这是限制某些数据类型的具体情况。我在问一个更广泛的问题;想知道什么样的常见做法适用于这种情况,您想要说明什么可以被视为不正确的数据类型的情况(如果有的话)。 – skippr 2012-03-21 20:23:38

回答

2

我一般会使用类似Boost/C++ 11 static_assert来断言你想要的属性。这不仅可以让你确保它是数字的,而且有像is_signed和is_integer这样的东西来保证类型的更多细节,如果你需要/想要。