今天我遇到了這個奇怪的錯誤,我使用std :: min來獲取變量值的最小值和枚舉常量,到目前爲止,一切都很好,但是當我去編譯它,G ++給我指出它找不到min函數模板匹配編譯錯誤:std :: min無法將枚舉常量解釋爲有效整數類型(g ++ 4.6.3)
no matching function for call to ‘min(int&, main()::<anonymous enum>)’
這是再現mimimal例子錯誤:
#include <algorithm>
int main()
{
int actualRange=10;
enum { DesiredRange=8 };
int workingRange = std::min(actualRange, DesiredRange);
return 0;
}
修復是微不足道的,我簡單地使用int(DesiredRange)
作爲mi的第二個參數n函數,但它讓我感到驚訝,因爲枚舉類型只是一個整數常量,所以這是非常必要的。我的系統信息如下:「g ++(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3」
有沒有什麼不正確的代碼引發了這個錯誤?,這是一個有效的編譯錯誤嗎?,
min的參數必須是相同的類型 – PlasmaHH 2013-04-08 19:54:34