指向访问其运算符的类的指针的decltype

问题描述

我正在上课

template<class T> class CT
{
  T& operator()(int i,int j) const noexcept
  { return indx[i*N+j]; }
  private:
  T  *indx;
  int N;

};

现在在我的应用程序中的某些地方,我有以下内容

CT<double> arr,(...);
(...)
decltype(arr) *alias;
if(usearr)alias = &arr;
(...)


alias(0,0) = 3.0; // Compiler ERROR!

编译器抱怨我通过decltype访问的对象类型不是函数或函数指针。

如果我在声明alias中删除指针并将行替换为赋值过载,则可以解决问题

decltype(arr) alias;
if(usearr)alias = arr;

前一种方法有什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)