gpt4 book ai didi

c++ - Visual Studio 检查迭代器不抛出异常

转载 作者:行者123 更新时间:2023-11-28 03:30:12 25 4
gpt4 key购买 nike

我有这个代码:

#ifdef _DEBUG
#define _SECURE_SCL 1
#define _SECURE_SCL_THROWS 1
#else
#define _SECURE_SCL 0
#define _SECURE_SCL_THROWS 0
#endif

#include <iostream>
#include <vector>


using namespace std;




int main()
{
vector <int> v1;
v1.push_back(33);

vector <int>::iterator it1 = v1.begin();

try
{
it1++;

it1++;
}
catch (...)
{
cout << "vector is empty!!" << endl;
}

return 0;
}

一个非常简单的方法:我尝试越过边界并希望捕获异常。然而,程序只是崩溃并显示“调试断言失败!”在第二个增量上,这是为什么呢?

示例取自http://msdn.microsoft.com/en-us/library/aa985965(v=vs.100).aspx我刚刚添加了宏来设置选中的迭代器。我处于 Debug模式,/EHsc 已打开,/MDd 也已打开

最佳答案

新版本的 Visual C++ 库(捆绑在 Visual Studio 2010 中)不支持从已检查的迭代器中抛出异常。参见 http://wishmesh.com/2010/04/it-seems-that-_secure_scl_throws-is-deprecated-in-visual-studio-c-2010/

关于c++ - Visual Studio 检查迭代器不抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com