相关疑难解决方法(0)

C++域特定的嵌入式语言运算符

在面向数字的语言(Matlab,Fortran)中,范围运算符和语义在处理多维数据时非常方便.例如:

A(i:j,k,:n) // represents two-dimensional slice B(i:j,0:n)  of A at index k
Run Code Online (Sandbox Code Playgroud)

遗憾的是,C++没有范围运算符(:).当然它可以使用范围/切片仿函数进行仿真,但语义不如Matlab干净.我在C++中使用矩阵/张量域语言进行原型设计,我想知道是否有任何选项可以重现范围运算符.我仍然只想依赖C++/prprocessor框架.

到目前为止,我已经查看了可能是合适选项的增强波.

还有其他方法可以将新的非本地运营商引入C++ DSL吗?

我知道你不能添加新的operator.am专门寻找解决方法.我提出的一件事(非常丑陋的黑客,我不打算使用):

#define A(r) A[range(((1)?r), ((0)?r))] // assume A overloads []
A(i:j); // abuse ternary operator
Run Code Online (Sandbox Code Playgroud)

c++ dns dsl operators dsel

7
推荐指数
1
解决办法
1622
查看次数

标签 统计

c++ ×1

dns ×1

dsel ×1

dsl ×1

operators ×1