最近,我面临着将手指指向VC6编译器的问题。

其中很少有:

  • 功能尝试块不起作用。 Related Q
  • 类常量不起作用。
  • __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相关的任何其他问题。有解决这些问题的解决方法吗?还是该更换编译器了?

    最佳答案

    坦率地说,我几乎不明白您为什么不购买现代计算机并改用Visual Studio 2008。

    VC6的STL不足,C++标准合规性差以及GUI已过时。

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

    关于c++ - 是时候跟VC6编译器说再见了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/733495/

    10-11 18:08