【问题标题】:Good Practice for Templated Classes and Handling Unwanted Type Declarations模板类和处理不需要的类型声明的良好实践
【发布时间】:2012-03-21 17:44:18
【问题描述】:

在处理模板类不需要的数据类型时,什么被认为是“良好做法”?

假设我们在一个模板化类中有一个函数,它执行数字乘法,但该类的驱动程序文件声明了一个类型为 string 的类的实例。

我得到的论点是,对于创建驱动程序文件的人来说,这是一个“个人问题”,您需要做的只是头文件/实现文件中的适当函数序言。

我想知道在这个问题上是否有与模板一起使用的一般做法。你是在处理类之前检查你的类型(我猜,在某种程度上违背了模板的目的),还是你定义了特定类型的行为(尽管这似乎也违背了目的)?

或者你只是简单地正确记录你的代码并让使用你的类的程序员采取预防措施?

【问题讨论】:

  • @GuillaumeSchub 这是限制某些数据类型的具体案例。我在问一个更广泛的问题;想知道在这种情况下应用了哪些常见做法,您想要考虑哪些情况(如果有的话)可能被视为不正确的数据类型。

标签: c++ class templates syntax coding-style


【解决方案1】:

我通常会使用诸如 Boost/C++11 static_assert 之类的东西来断言你想要的属性这不仅可以让你确保它是数字的,而且还有诸如 is_signed 和 is_integer 之类的东西来确保关于类型的更多细节,如果你需要/想要的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多