无效使用自动

sma*_*llB 1 c++ auto c++11

在这段代码中:

for ( ;(auto i = std::find(some_string.begin(),some_string.end(),'%')) != some_string.end();)
    {

    }  
Run Code Online (Sandbox Code Playgroud)

我从gcc 4.7.1收到错误:

error: invalid use of 'auto'|   
Run Code Online (Sandbox Code Playgroud)

任何想法为什么?不应该正确编译?

pio*_*kuc 6

我认为这与此无关auto.你不能在随机的地方声明变量,例如这也不会编译 - 相当于你试图做的,但没有auto:

int main() {
  for ( ; (int i = 0) != 1; ++i)
    ;   
  return 0;
}
Run Code Online (Sandbox Code Playgroud)