OF中关于tmp类型变量的运算和使用
-
我在OF源码中看到tmp类型的变量运算,比如tmp<volSymmTensorField> LL = (一个场), volSymmTensorField MM(......); 然后 LL && MM就可以计算。我之前看到到tmp,理解成一个指针,用于大数据量的场的赋值中,优化内存。但这样的话,LL&&MM我感觉不太理解了,一个指针和一个场怎么能运算呢?而且用tmp的话,要和new对应使用吧?
如果定义返回值类型为tmp的函数,在函数体中就用到了new,这个我是理解的,难道定义一个tmp类型的变量就不用new了么?像tmp<volSymmTensorField> LL =(一个场)这样?
谢谢各位的指教!
-
-
很多操作符都对
tmp<>
类型进行重载了,因此tmp<>
类型的对象可以直接使用这些操作符进行相应的操作。 -
tmp<>
类型封装的变量可以是用new
申请的对象(存储堆内存上),也可以不是(存储在栈内存上):http://marinecfd.xyz/openfoam-tmp -
tmp<volSymmTensorField> LL =
调用的是拷贝构造函数,因此右边也应该是tmp<volSymmTensorField>
。
-