c++ - 是否有设计好的类模板的通用规则?

标签 c++ templates

我在一个部门工作,人们创建(或选择)在小型软件中实现的算法,以优化一些与领域相关的目标。我的大多数同事对数学建模和求解器的了解多于对编程的了解。

我个人有几年开发 C++ 类模板的经验。我非常知道如何设计代表算法的类模板,但我无法设计同事编写的每一个软件(时间不够,兴趣不够)。

因此,我的目标是尝试教我的同事如何将他们想到的功能和算法转变为类模板。模板参数可以是结构类型或策略类。我觉得我需要想出一套“做/不做”的规则,但我似乎无法发明它们。

对我来说,良好的类模板设计的目标是最大限度地提高可读性。

您个人有设计好的类模板的规则吗? 从功能描述到类模板设计是否有一个正确的流程?

编辑

是的,很难让人们使用模板进行编程。我正在研究它并开发一个框架以使模板实例化尽可能图形化,并开发指南(并提供日常帮助)以使模板编程尽可能简单。但这里的问题只是关于设计,我认为这是一个完全不同的问题。

最佳答案

我不想对你的游行下雨,但根据我的经验,试图让非程序员(或那些编程不是他们的主要“事情”的人)对一些相对神秘的东西感兴趣,比如编写好的模板代码C++ 是一项 Sysiphean 任务。

哎呀,我在一个拥有大量非常优秀的 C++ 程序员的部门工作,即便如此,让组织 promise 采用新技术并不总是那么容易。如果您的同事是优秀的数学家并且了解足够的编程知识,那么试图强制他们需要编写通用的 C++ 将是一个非常艰难的推销。

我会努力遵循 Mykola 的建议,并尝试提出某种通用算法框架,以最大限度地减少他们需要执行的原始模板编码;这可能是克服你不可避免地认为你只是在向他们投入更多工作的阻力的最佳方法。

关于c++ - 是否有设计好的类模板的通用规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700735/

相关文章:

c++ - 将大括号括起来的初始值设定项列表转换为类型时出错的含义?

c++ - C++中的 vector 重复打印输入

c++ - 具有由整数模板参数指定的参数数量的类方法

C++:模板 - 没有要调用的匹配函数

c++ - std::is_signed<bool>::value 是否保证返回 false?

c++ - 编译我的 C++ 代码需要很长时间

c++ - 将 GpuMat 行复制到 std::vector

templates - 轨道 3 : @template variable inside controllers is nil

c++ - 新构造的对象作为默认模板函数参数

c++ - 简单 CRTP 案例中没有名为 "XXX"的成员