2

我在 C# 中有一个使用 _set_invalid_parameter_handler 函数的代码。它是特定于 Windows 的,我正在尝试用标准 C++ 重写此代码,以便它在 Linux 上运行。

我不确定如何翻译此功能。我被建议使用http://en.cppreference.com/w/c/error/set_constraint_handler_s但我遵循了这个例子,并且约束处理程序的类型在 Visual Studio 2015 中也没有被识别,当我尝试编译它时在 Linux 上。将感谢使用约束处理程序或找到其他方式在标准 C++ 中复制 _set_invalid_parameter_handler 功能的帮助。

4

1 回答 1

0

这并不容易 set_constraint_handler 是 C11 功能,而 set_invalid_parameter 是 Microsoft 特定的(也在 C++ 中)。

在标准 C++ 中,解决方案是使用异常,并尝试/捕获而不是设置处理程序 - 但它要求您调用的低级函数实际检测并发出异常信号 - 因此我们需要一个更完整的示例来查看是否这有帮助。

于 2017-07-11T13:50:54.443 回答