是时候告别 VC6 编译器了吗?

2024-02-22

最近我遇到了指向 VC6 编译器的问题。

其中很少有:

  1. 函数尝试块不起作用。相关问题 https://stackoverflow.com/questions/697026/exception-handling-in-constructors-initializer-list
  2. 类内常量不起作用。
  3. __FUNCTION_(获取函数名称的宏)不起作用
  4. 最新添加的是它不允许将 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 相关的任何其他问题。有什么解决方法可以解决这些问题吗?或者是时候改变编译器了?


坦率地说,我很难理解为什么您不购买一台现代计算机并切换到 Visual Studio 2008。

VC6 的 STL 有缺陷,C++ 标准遵从性差,GUI 过时。

您不应该让竞争对手使用比您更好的工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是时候告别 VC6 编译器了吗? 的相关文章

随机推荐