问题描述
我说可以,所以我有一个在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 (将#修改为@)