⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c_error_policy_example.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
// C_error_policy_example.cpp// Copyright Paul A. Bristow 2007.// Copyright John Maddock 2007.// Use, modification and distribution are subject to the// Boost Software License, Version 1.0.// (See accompanying file LICENSE_1_0.txt// or copy at http://www.boost.org/LICENSE_1_0.txt)// Suppose we want a call to tgamma  to behave in a C-compatible way// and set global ::errno rather than throw an exception.#include <boost/math/special_functions/gamma.hpp>using boost::math::tgamma;using boost::math::policies::policy;// Possible errorsusing boost::math::policies::overflow_error;using boost::math::policies::underflow_error;using boost::math::policies::domain_error;using boost::math::policies::pole_error;using boost::math::policies::denorm_error;using boost::math::policies::evaluation_error;using boost::math::policies::errno_on_error;//using boost::math::policies::ignore_error;//using namespace boost::math::policies;//using namespace boost::math;// Define a policy:typedef policy<      domain_error<errno_on_error>, // 'bad' arguments.      pole_error<errno_on_error>, // argument is pole value.      overflow_error<errno_on_error>, // argument value causes overflow.      evaluation_error<errno_on_error>  // evaluation does not converge and may be inaccurate, or worse.      > C_error_policy;// std#include <iostream>   using std::cout;   using std::endl;   int main(){  // We can achieve this at the function call site  // with the previously defined policy C_error_policy.  double t = tgamma(4., C_error_policy());  cout << "tgamma(4., C_error_policy() = " << t << endl; // 6  // Alternatively we could use the function make_policy,  // provided for convenience,  // and define everything at the call site:  t = tgamma(4., make_policy(         domain_error<errno_on_error>(),          pole_error<errno_on_error>(),         overflow_error<errno_on_error>(),         evaluation_error<errno_on_error>()       ));  cout << "tgamma(4., make_policy( ...) = " << t << endl; // 6  return 0;} // int main()/*OutputAutorun "i:\boost-06-05-03-1300\libs\math\test\Math_test\debug\c_error_policy_example.exe"tgamma(4., C_error_policy() = 6tgamma(4., make_policy( ...) = 6*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -