这段代码为什么这么写\xef\xbc\x8c是为了解决什么问题呢?
\n“::运算符新(巨大);” 似乎导致内存泄漏。
\nEIGEN_DEVICE_FUNC \ninline void throw_std_bad_alloc()\n{\n #ifdef EIGEN_EXCEPTIONS\n throw std::bad_alloc();\n #else\n std::size_t huge = static_cast<std::size_t>(-1);\n ::operator new(huge);\n #endif\n}\n\nRun Code Online (Sandbox Code Playgroud)\n
该函数被设计为抛出异常或在内存分配失败时执行任何操作。
如果EIGEN_EXCEPTIONS定义了,它将抛出一个正常的异常,std::bad_alloc但在其他情况下,它将尝试进行字节分配std::numeric_limits<std::size_t>::max()(这就是static_cast<std::size_t>(-1)结果),假设分配总是失败,因此不会发生泄漏。如果异常被关闭,它很可能会被abort()程序关闭。
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |