C++ 模板结构作为模板类类型

C++ 模板结构作为模板类类型,c++,C++,helpersp中的括号代表什么?既然helpers是一个单独的对象,我们怎么能遍历helpers呢?心灵的答案是否定的,因为我不知道数组到底是什么 似乎数组类模板重载了函数调用运算符,而不是索引运算符[]。只需将其当作普通数组索引括号[]所在的括号使用即可。 另外,您的代码清楚地显示了一种使用for循环迭代helpers的方法 无论如何,为了获得进一步的帮助,我们需要看一些代码。helpers是一个数组,其中第一个模板参数是T\u CG\u HELPER。这可能意味着它是一个T_CG_助手数组

helpersp中的括号代表什么?既然helpers是一个单独的对象,我们怎么能遍历helpers呢?心灵的答案是否定的,因为我不知道数组到底是什么

似乎数组类模板重载了函数调用运算符,而不是索引运算符[]。只需将其当作普通数组索引括号[]所在的括号使用即可。 另外,您的代码清楚地显示了一种使用for循环迭代helpers的方法

无论如何,为了获得进一步的帮助,我们需要看一些代码。

helpers是一个数组,其中第一个模板参数是T\u CG\u HELPER。这可能意味着它是一个T_CG_助手数组

您还没有向我们展示ARRAY类的外观,因此不可能知道如何对其进行迭代。helpersp意味着调用helpers上的运算符函数,将p作为参数传递

  template<class T,class TV> struct CONJUGATE_GRADIENTS_HELPER{
      DEFORMABLE_OBJECT<T,TV>* deformable_object;
      int partition_id;
      T time,dt;
      T alpha,beta;
      ARRAY<TV>* dX_full;
      ARRAY<double> *S_dot_Q_partial,*rho_new_partial,*supnorm_partial;
  };

  typedef CONJUGATE_GRADIENTS_HELPER<T,TV> T_CG_HELPER;
  ARRAY<double> S_dot_Q_partial(particles.particle_ranges->m);
  ARRAY<T_CG_HELPER> helpers(particles.particle_ranges->m);

  for(int p=1;p<=particles.particle_ranges->m;p++){
          helpers(p).deformable_object=this;
          helpers(p).partition_id=p;
          helpers(p).time=time;
          helpers(p).beta=beta;
          helpers(p).S_dot_Q_partial=&S_dot_Q_partial;
  }