我在CodeSignal上发现了一段奇怪的C++语法:
string r, longestDigitsPrefix(string s)
{
for(auto const c : s)
{
if(isdigit(c))
r += c;
else
break;
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
第一行是string r在函数声明之前定义的.这在现代C++中是否有效?
上面的代码编译并传递CodeSignal控制台中的所有测试,但是当我尝试本地编译时它产生了编译器错误(--std=c++14).
这是现代C++中的有效语法吗?如果是这样,它符合哪个标准修订版?