【发布时间】:2012-02-03 16:28:32
【问题描述】:
我有一个名为 removeInelligibleCharsFromTargetName 的新函数。
void removeInelligibleCharsFromTargetName(string *targetName)
{
for(int i = 0; i < targetName->length(); i++)
{
for(int j = 0; j < ineligibleChars.length(); j++)
{
if(targetName[i] == ineligibleChars[j])
targetName[i] = '_';
}
}
}
问题是当我尝试在 if 循环中进行比较时,出现以下错误:
错误 C2678: 二进制 '==' : 未找到采用 'std::string' 类型的左侧操作数的运算符(或没有可接受的转换) 32> c:\program files\microsoft sdks\windows\v6.0a\include\guiddef.h(192): 在尝试匹配参数列表时可能是 'int operator ==(const GUID &,const GUID &)' '(std::string, char)'
但是把完全相同的嵌套循环放回我调用它的地方,而不是调用它工作正常的函数。
谁能告诉我它不能在函数中工作,但在函数外可以正常工作。毫无疑问,它是一个指针,但我不知道是什么。
【问题讨论】: