【发布时间】:2022-02-20 05:21:39
【问题描述】:
我知道运算符重载,但这不是我要说的。
我用 C++ 做了很多科学计算。例如,我必须计算梯度、点积、拉普拉斯算子、粗麻布算子……
所有这些通常都有明确定义和标准的数学符号。渐变使用 nabla, hessian nabla^2 laplacian \delta ...
我通常必须写vec Gradient(fun_ptr) 或Hessian(fun_ptr)。
问题在于,这会使代码与我正在实施的论文有所偏差,并且当您复制错误时,它会更难被发现。
有没有什么方法可以将 \nabla 字符定义为例如运算符?
【问题讨论】:
-
现在您可以在函数名称中使用
UTF-8字符(至少在某些编译器上),因此您可以将希腊字母用于函数和/或常量。例如double π = 3.14; -
运算符的一个问题是优先级。您不能为新运算符设置优先级,它必须在编译器中进行硬连线。
标签: c++ compilation operators