推广C++代码的有效方法(从2D计算到3D计算)
Efficient way of generalizing a C++ code (a 2D computation to 3D computation)
我正在编写一个C++
代码,用于进行2D和3D计算。主函数有一个参数,我可以从中判断是进行2D还是3D计算(dim=2
还是dim=3
)。启用/禁用基于dim
的特定代码段编译的最佳选项是什么?我发现这篇文章建议使用#ifdef
,所以我想定义一个宏,然后使用#ifdef
:
if( dim == 2 )
#define DISABLE_3D true
我相信有更好的方法可以做到这一点,我很乐意这样做。
您必须确定它们是依赖于编译时还是依赖于运行时。#ifdef
宏依赖于编译时间,因此程序将仅具有2D或3D功能。如果您需要一个在运行时同时适用于二维和三维计算的函数,则应避免使用#ifdef
宏。
您可以使用C++的"函数覆盖"特性,而不是使用if (dim==2)
决策。由于缺少许多细节,我不能给出一个具体的例子,但如果2D和3D数据存在差异,这可能是一个可以实现功能覆盖的提示。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- 2D数组来自文本输入,中间有空格
- 将值指定给向量(2D)的向量中的某个位置
- (C++)分析树以计算返回错误值的简单算术表达式
- 如何计算2d数组中的重复数?(C++)
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- 如何计算 2D 数组中每行的总和并放置在向量中
- 计算 2D 数组中的所有数字
- 使用 2D 数组计算总计、最高价和最低价
- OPENCV(C ) - 从已知的3D对象和相机位置计算图像的2D坐标
- 在 2D 中计算惯性张量
- 建议计算多个凸2D多边形的交叉点
- 计算 2D 数组 C++ 中的每一行
- 型号的2D向量的PCA计算
- 从2D纹理上的位置(x,y)计算.obj文件中的vt(u,v)坐标
- C++计算2D数组中可变宽度数字的平均值
- 尝试计算 2D 数组中的特定字符,但改为计算整个数组
- 如何使用叉积计算两个 2D 矢量之间的角度
- 推广C++代码的有效方法(从2D计算到3D计算)