小编Ste*_*sca的帖子

std :: vector :: insert,是否可以将end作为第一个参数调用它?

至于标题,可以vec.end()作为位置参数传递吗?即,是的行为

std::vector<int> vec;
vec.insert(vec.end(), 0);
Run Code Online (Sandbox Code Playgroud)

明确定义?

c++ stl

4
推荐指数
2
解决办法
304
查看次数

枚举黑客是否在C中工作?如果是这样,它应该在VisualStudio 2003中工作吗?

我讨厌定义.为了从旧的代码库中尽可能多地消除它们,我需要依靠枚举来定义包含数组的结构.不幸的是,当C项目包含被控制的.h文件时,我没有将其编译.

typedef struct _P_O {
    enum { MAXELEMENTS=10 };
    P_O_U elem;
    ULONG id[MAXELEMENTS];
    USHORT nid;
} P_O, *PP_O;
Run Code Online (Sandbox Code Playgroud)

这会产生错误C2208:

'type':没有使用此类型定义的成员
解析为类型名称的标识符在聚合声明中,但编译器不能声明成员.

OT:我讨厌使用10年代的编译器,不得不保留旧的C代码和糟糕的设计; 不只是定义:)

c visual-studio-2003

3
推荐指数
1
解决办法
649
查看次数

当没有抛出bad_alloc时,对于'new`保证无法保证是什么意思

文件new:

如果第一个版本(1)无法分配存储,则会抛出bad_alloc.否则,它不会抛出异常(无抛出保证).

对我来说,这应该意味着这个代码

#include <new>

struct A{
    A(){
        throw 0;
    }  
};

int main(){
    try{
        A* a = new A;
    }
    catch(std::bad_alloc&){}
}
Run Code Online (Sandbox Code Playgroud)

很好.但是,当用gcc编译它时(见这里),程序在抛出后终止int.

c++ std

1
推荐指数
1
解决办法
115
查看次数

标签 统计

c++ ×2

c ×1

std ×1

stl ×1

visual-studio-2003 ×1