0
我有一個問題,在XCode中沒有重新渲染(甚至沒有警告),但確實允許我在Keil MDK中編譯。KEIL錯誤:重載函數「std :: transform」沒有實例匹配參數列表
void grammar::parse(std::string &_expr) {
std::transform(_expr.begin(), _expr.end(), _expr.begin(), std::tolower);
_expr.erase(std::remove_if(_expr.begin(), _expr.end(), std::isspace), _expr.end());
}
這就是我得到
錯誤:#304#304:沒有的功能模板「性病情況下,不重載函數實例 「的std ::變換」 錯誤匹配的參數列表: :的remove_if」相匹配的參數列表
頭包括:
#include <iostream>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <stdio.h>
#include <algorithm>
能否請你告訴我在哪裏找?我很驚訝,XCode版本按預期工作...
謝謝!我已將替換爲,但這並未改變錯誤。我應該使用命名空間標準;?可能導致錯誤? –
@AnnaShkodenko:錯誤可能比真正發生的事情更混亂。如果這不能解決問題,那麼問題可能是(儘管錯誤消息不會真正說明),您還包括(很可能通過'iostream'和潛在的其他標準頭文件)間接'locale'頭文件。在這個頭文件中有一些'std :: tolower'的重載,編譯器可能無法確定哪一個是你想要使用的。如果是這種情況,你可以通過* casting *(真正選擇重載)來幫助它:'static_cast(std :: tolower)' –