微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在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 举报,一经查实,本站将立刻删除。