C++ 11基于范围的auto for value for value,reference和pointer

cka*_*ain 7 c++ for-loop auto c++11

我知道如何在for循环中使用auto关键字来按值或引用迭代这个数组.

struct A {
 void fun() {};
};

int main() {
  A a[2];

  // Value
  for (auto x : a) {
    x.fun();
  }

  // Ref
  for (auto& x : a) {
    x.fun();
  }

  // Pointer
  //for (...) {
    x->fun();
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找这个约定的第三个版本.我如何在这里使用指针?

Yak*_*ont 11

A a[2];
for(auto& x_:a){
  auto* x = &x_;
  // code
}
Run Code Online (Sandbox Code Playgroud)


Seb*_*edl 7

你没有.如果你想要一个指针,可以写一个经典的for循环,或者通过引用循环并获取地址.