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