gpt4 book ai didi

c++ - 错误 C4996 : 'std::_Copy_impl' : is it safe to disable it?

转载 作者:行者123 更新时间:2023-11-28 06:15:05 24 4
gpt4 key购买 nike

<分区>

我正在使用 odeint boost用于求解微分方程。在 visual studio 2010 中,没有出现错误,但是当我使用 visual studio 2013 时,出现此错误

xutility(2132):错误 C4996:“std::_Copy_impl”:带有可能不安全参数的函数调用 - 此调用依赖于调用方检查传递的值是否正确。要禁用此警告,请使用 -D_SCL_SECURE_NO_WARNINGS。请参阅有关如何使用 Visual C++“已检查的迭代器”的文档

我已经通过使用此 #pragma warning( disable : 4996 ) odeint 中提供的示例禁用警告来解决问题现在正在工作。这是样本,

#pragma warning( disable : 4996 )
#include <iostream>
#include <boost/array.hpp>
#include <boost/numeric/odeint.hpp>

using namespace std;
using namespace boost::numeric::odeint;

const double sigma = 10.0;
const double R = 28.0;
const double b = 8.0 / 3.0;

typedef boost::array< double, 3 > state_type;

void lorenz(const state_type &x, state_type &dxdt, double t)
{
dxdt[0] = sigma * (x[1] - x[0]);
dxdt[1] = R * x[0] - x[1] - x[0] * x[2];
dxdt[2] = -b * x[2] + x[0] * x[1];
}

void write_lorenz(const state_type &x, const double t)
{
cout << t << '\t' << x[0] << '\t' << x[1] << '\t' << x[2] << endl;
}

int main(int argc, char **argv)
{
state_type x = { 10.0, 1.0, 1.0 }; // initial conditions
integrate(lorenz, x, 0.0, 25.0, 0.1, write_lorenz);
}

我的问题是禁用此警告是否安全?谢谢

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