❶ codeblocks 測試函數模板通不過編譯:call of overloaded 'swap(int&, int&)' is ambiguous
測了一下,語法沒有大錯誤。codeblocks的後端gcc/mingw也支持模板。
不能編譯運行的原因是swap函數與標准庫的std::swap函數沖突。屬於調用疏忽。
解決方法1:調用時聲明名字空間,把swap(a1,a2);改成::swap(a1,a2);前加::,避免沖突
解決方法2:改變函數名稱,把自定義的函數swap改成swapABC或其它。