是时候和VC6编译器说再见了吗?

aJ.*_*aJ. 6 c++ compiler-construction visual-c++-6

最近我面临着指向VC6编译器的问题.

其中很少是:

  1. 函数try-block不起作用.相关问题
  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;
}
Run Code Online (Sandbox Code Playgroud)

您是否遇到过与VC6.0相关的任何其他问题.解决这些问题的任何解决方法?还是时候改变编译器了?

Edo*_* A. 37

坦率地说,我很难理解你为什么不买现代电脑并转而使用Visual Studio 2008.

VC6缺乏STL,差的C++标准兼容性和过时的GUI.

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

  • 有些用户没有选择权,因为他们在大型的,保守的公司工作,而这些公司并不总是以我们认为最符合他们利益的方式行事.对代码进行大量投资的公司不会轻易放弃.有些人在30-40岁的大型机上运行Cobol. (3认同)
  • 是时候执行Monthy Python死鹦鹉素描了."伙计,如果你把四百万伏特通过它,这只鸟就不会"发出声音!"E的流血消失了! (2认同)

dar*_*ron 7

嗯,这就是事情.VC6编译器很糟糕.但是...... IDE非常好.

VS2005具有更好的源代码控制支持.否则,它的调试速度要慢得多,有一个糟糕的输出窗格,在插入输出行时呈指数衰减(绝对垃圾编码是什么?),帮助系统慢了很多倍,调试和继续(可能是微软最好的功能而不是其他IDE)更加破碎.

.净?当然,VS20xx是唯一的出路.但是,对于一个坚持使用VC6/MFC的小客户端(用于嵌入式系统的接口等),我实际上喜欢使用VC6.这只是快点.

2008年?我想...但我的客户需要一段时间才能迁移.还没有人.


Mar*_*ram 6

是时候和VC6编译器说再见了吗?

是.