我有具有以下結構的第三方庫的代碼段的末尾:控制可以達到非void函數的Xcode
class A;
A func()
{
if(...)
{
return A(...);
}
else if(...)
{
return A(...);
}
else
{
LOG(...);
}
}
它給出了錯誤「控制可以達到非void函數結束」在Xcode中。
相同的段在VS2012中編譯沒有任何問題。 Xcode C++編譯器方言和標準庫設置爲C++ 89和libstdC++。我知道這是一個預期的行爲,但不符合標準的vs2012編譯器行爲?
LOG()宏是做什麼的? –
您可能已經設置了一個使警告變爲錯誤的標誌。但是,你真的想要編譯代碼嗎? – juanchopanza
您在'else'分支中或函數作用域結束之前缺少'return'。 –