std::max,std::min错误:应输入标识符的解决方法
????使用VS2010編寫的C++程序 std:min 轉(zhuǎn)換到 VS2013無法識別,顯示“錯誤:應(yīng)輸入標(biāo)識符”。
????標(biāo)準(zhǔn)庫在頭中定義了兩個模板函數(shù)std::min() 和 std::max()。通常用它可以計算某個值對應(yīng)的最小值和最大值。可惜在 Visual C++ 無法使用它們,因為沒有定義這些函數(shù)模板。原因是名字min和max與<windows.h>中傳統(tǒng)的min/max宏定義有沖突。
解決方法:
-
為了解決這個問題,Visual C++ 定義了另外兩個功能相同的模板:_cpp_min() 和 _cpp_max()。我們可以用它們來代替std::min() 和 std::max()。
-
可以禁用Visual C++中的 min/max宏定義,可以在包含<windows.h>頭文件之前加上:
????????#define NOMINMAX
????????或者將 NOMINMAX 加到 preprocessor difinitions 中。具體方法是:
????????項目屬性—配置屬性—C/C+±–預(yù)處理器中添加“NOMINMAX”,如下圖所示
????3. 在std::max外加上括號,阻止宏替換,即(std::max)()。
????????三種方法任選其一即可,2、3親測可用,第一種還沒有嘗試過。
參考鏈接:
鏈接1
總結(jié)
以上是生活随笔為你收集整理的std::max,std::min错误:应输入标识符的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疑问:undistortPoints()
- 下一篇: C++ char 与uchar区别