小编Har*_*rry的帖子

在现代C++中,在函数声明中定义返回变量是否合法?

我在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++中的有效语法吗?如果是这样,它符合哪个标准修订版?

c++ declaration language-lawyer

40
推荐指数
2
解决办法
2971
查看次数

标签 统计

c++ ×1

declaration ×1

language-lawyer ×1