C++ 扔坏的东西做什么?

C++ 扔坏的东西做什么?,c++,C++,我在Xcode中使用静态分析器时遇到了这个问题,但找不到任何文档来准确描述这个函数的功能。我在谷歌上搜索过,运气不好。我只在一些开源项目中找到了对该函数的引用 这是实现的内部产物,您作为用户不需要知道 我们知道它是内部的,因为它使用一个保留标识符(包含连续下划线的名称都是保留的),我们可能从名称中猜测它可能只是抛出了一个std::bad_alloc异常 它可能比简单地以正常方式抛出异常更复杂,因为它必须在不进行任何分配的情况下运行。它还可能具有可配置的行为,以便在非默认环境中使用(例如,在禁用异

我在Xcode中使用静态分析器时遇到了这个问题,但找不到任何文档来准确描述这个函数的功能。我在谷歌上搜索过,运气不好。我只在一些开源项目中找到了对该函数的引用

这是实现的内部产物,您作为用户不需要知道

我们知道它是内部的,因为它使用一个保留标识符(包含连续下划线的名称都是保留的),我们可能从名称中猜测它可能只是抛出了一个
std::bad_alloc
异常


它可能比简单地以正常方式抛出异常更复杂,因为它必须在不进行任何分配的情况下运行。它还可能具有可配置的行为,以便在非默认环境中使用(例如,在禁用异常的情况下)。

听起来像是一个内部叮当声函数,可能会抛出
错误的alloc
。这样你就可以将所有的投掷都委托给函数,所以如果你禁用异常,你可以在函数中处理它。在C和C++中,任何标识符从2个下划线开始,或者任何一个开始,用1个下划线+大写字母,或者从1个下划线开始的全局命名空间中的任何一个被保留,用作一个实现。(编译器、库、makefile等)详细信息。最终用户不应该定义此类名称、调用预定义名称或真正担心它们。通常,它是一个定义错误分配异常抛出例程的宏。正如您可能已经在这些开源项目中看到的,它或者使用std::bad_alloc()或者,如果第一个选项因某些原因不可用,那么纯输出是否可用?我问的原因是,静态分析器似乎认为一个代码块将返回nil,这是路径中的一步。分析器似乎认为函数将返回,执行将继续。然而,正如我所建议的,我会预期fu将返回n要抛出的操作。在这种情况下,静态分析器可能是错误的,但我不确定是否丢失了某些内容。@下划线\u d——包含两个下划线的名称是保留的,而不仅仅是以两个下划线开头的名称。