小编use*_*900的帖子

如何在C++中跟踪NaN

我将使用C++进行一些数学计算.输入浮点数是有效数字,但在计算之后,结果值为NaN.我想跟踪NaN值出现的点(可能使用GDB),而不是isNan()在代码中插入很多.但我发现即使是这样的代码也不会在出现NaN值时触发异常.

double dirty = 0.0;
double nanvalue = 0.0/dirty;
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一种跟踪NaN或将NaN变为异常的方法吗?

c++ debugging floating-point

30
推荐指数
2
解决办法
9389
查看次数

如何在Boost程序选项中获得更好的错误消息

在下面的代码中,我使用程序选项从命令行或文件中读取参数.此外,可以通过ConfigProxy :: setConfig在运行时以编程方式设置选项

po::options_description desc("Allowed options");
desc.add_options()
    ...
    ("compression", po::value<int>(), "set compression level");

po::variables_map vm;

class ConfigProxy
{
     template< typename T>
     void setConfig( const std::string key, const T value ){
          ... // check if the key exists in variable map "vm"

          // key exists, set the value
          runtimeConfig[key] = po::variable_value( boost::any(value), false);
     }

     po::variable_value& operator[] (const std::string key) const{
          ...
          // if exists in runtimeConfig return the value in runtimeConfig
          // of type program_options::variable_value
          ...
          // else return …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-program-options

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

错误运算符new []:函数不带1个参数

我有重载运算符的代码new.下面的代码在Linux(gcc4x)下运行正常,但不适用于Windows(Visual C++ 2008 Express Edition)

Visual Studio 2008 Express Edition下的代码报告

错误C2660:operator new []:函数不带1个参数

class dummy{};
void* operator new[] (size_t size, dummy gcp)
{
  return ::operator new[](size);   //error
}

int main()
{
    dummy dummyobj;
    dummy* ptr = new (dummyobj) dummy[5];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ new-operator visual-c++-2008

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

在C++中使用调试/发布版本的DLL

我正在编写一个可以在Linux(gcc 4.3)和Windows(MS VS08 Express)下编译的C++应用程序.

我的应用程序使用第三方库,

Linux上,它们被编译为共享库,而在Windows上,有两个版本"Debug"和"Release".

我知道调试版本为调试提供了额外的支持(就像在linux gcc中使用-ggdb选项一样,对吗?)

但是我发现如果我的应用程序是在调试版本中,那么库也必须是调试版本,否则应用程序将崩溃.

为什么会有这样的限制?似乎linux世界中没有这样的限制

非常感谢你!

c++ visual-c++

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