最近我面临着指向 VC6 编译器的问题。
其中很少有:
- 功能尝试块不起作用。相关问
- 类内常量不起作用。
- __FUNCTION_(获取函数名的宏)不起作用
- 最新添加的是它不允许将 void 函数作为 for_each 的一部分传递。
以下示例未使用 VC6 编译器进行编译。它说“错误C2562:'()':'void'函数返回一个值”。看起来 VC6 不喜欢将 void 函数传递给 for_each。
class Temp
{
public:
Temp(int i):m_ii(i)
{}
int getI() const
{
return m_ii;
}
void printWithVoid()
{
cout<< "i = "<<m_ii<<endl;
}
bool printWithBool()
{
cout<< "i = "<<m_ii<<endl;
return true;
}
private:
int m_ii;
};
int main(void)
{
std::vector<Temp> arrTempObjects;
arrTempObjects.push_back(Temp(0));
arrTempObjects.push_back(Temp(2));
//Doesnot work, compiler error
std::for_each(arrTempObjects.begin(), arrTempObjects.end(), std::mem_fun_ref(&Temp::printWithVoid));
//Works
std::for_each(arrTempObjects.begin(), arrTempObjects.end(), std::mem_fun_ref(&Temp::printWithBool));
return 0;
}
您是否遇到过与 VC6.0 相关的任何其他问题。有什么办法可以解决这些问题?或者是时候改变编译器了?