在VS 2015中编译了在VS 6.0中开发的C ++代码

问题描述

我说可以,所以我有一个在VS 6.0中开发的代码(可以很好地编译),我认为它使用的是C ++ 03版本。

所以我迁移了整个代码(依赖关系...),现在开始编译。

我看到语法有错误的问题!!

喜欢这个课程:

Node.h

class Node : public Network
{
    public:
    struct all_rights_tag {};

    Node();
    virtual ~Node();

    static const Node All;
    static const Node None;
    static const Node Admin;
 }

Node.cpp

.
.
const Node  Node::All( Node::all_rights_tag() );
const Node  Node::None;
const Node  Node::Admin( Node::all_rights_tag() );
.
.

问题是当我编译此.cpp文件时,它无法告诉我::All::Admin的声明与头文件中的定义不兼容。

我将直接初始化从括号改为大括号:

.
.
const Node  Node::All{ Node::all_rights_tag() };
const Node  Node::None;
const Node  Node::Admin{ Node::all_rights_tag() };
.
.

它工作正常,我的问题是在c ++ 11(Direct initialization)中引入了使用贿赂的直接初始化。

所以我的vs 2015编译器现在同时带有括号和大括号,因此为什么它不起作用。

如果在vs 2015中用vs 6.0开发的代码在代码中有所变化,那会很复杂,我想不是:p

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...