c11语言编译,vs2012上编程C++语言,C11标准编译error

1 #pragma once

2 #include "Durations.h"

3 #include "Guards.h"

4 #include

5

6 classCDuration7 {8 public:9 CDuration(void);10 ~CDuration(void);11

12 //自定义ID类型

13 using id = long;14 //别名标识记录类型

15 using counter =id;16

17 //记录结构体

18 structrec19 {20 size_t cbsize;21 time_t front;22 time_t back;23 longlen;24 CGuards::GuardsInfo guardsinfo;25 };26

27 //提交时间段记录

28 constrec submitInfo();29

30 voidsetStage(time_t front,time_t back);31 //时间长度,单位:分钟

32 longgetLength();33

34 CGuards* getGuards(CGuards*gurds);35 CDurations* getParent(CDurations*prt);36 CGuards* getGuards(void);37 CDurations* getParent(void);38

39 //重载比较运算符

40 bool operator==(CDuration& dur)const;41 bool operator!=(CDuration& dur)const{return !(*this==dur);}42 private:43 //辅助函数

44 const id getid()const;45 //自动分配有效id

46 voiddispatch_id();47

48 private:49 CDurations *parent;50 CGuards*guards;51 time_t start;52 time_t end;53 //自己的唯一标识

54 id unique_id;55

56 //id:按照出生顺序累加57 //存在的对象数目

58 staticcounter dur_count;59 staticid dur_max;60 };

以上是“Duration.h”

1 #pragma once

2 #include "Duration.h"

3 #include

4 usingstd::vector;5

6 classCDurations7 {8 public:9 CDurations(void);10 ~CDurations(void);11

12 size_t size()const;13 longgetLength();14

15 void append(CDuration&dur);16 void remove(CDuration&dur);17 voidclear();18

19 private:20 vectordurations;21

22 };

以上是“Durations.h”

程序比较大,互相 包含文件比较多,先不全部粘贴上来了。

以这些代码为例,编译就会出现错误,怎么改都消除不掉,不知是不是C11标准问题还是代码不规范导致的,请大神帮忙分析一下。

后续代码如果需要,我再粘上。

错误标识:

错误 283 error C2923: “std::vector”: 对于参数“_Ty”,“CDuration”不是有效的 模板 类型变量 d:\窗口程序\sitemanager\sitemanager\durations.h 20 1 SiteManager

错误 282 error C2065: “CDuration”: 未声明的标识符 d:\窗口程序\sitemanager\sitemanager\durations.h 20 1 SiteManager

错误 576 error C3867: “std::vector<_ty>::size”: 函数调用缺少参数列表;请使用“&std::vector<_ty>::size”创建指向成员的指针 d:\窗口程序\sitemanager\sitemanager\durations.cpp 15 1 SiteManager

...

错误数量太多,这里不一一复制了,就如上为例吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值