为什么naked
函数不允许使用Try-Catch?还有其他选择吗?
Error 2 error C2490: 'try' not allowed in function with 'naked' attribute
答案 0 :(得分:4)
不允许使用结构化异常处理和C ++异常处理构造,因为它们必须在堆栈帧中展开。
答案 1 :(得分:2)
它使用异常处理而不是“裸”的原因是它们的函数没有标准的prolog和epilog部分,这对于“展开堆栈”是必要的,“catch”就是这样。它说here(裸体功能的限制)。
你需要找到一些其他的方法来实现你想要的东西 - 要么以某种方式包裹你的裸体功能“让他们穿好衣服”[穿着=裸体相反,不确定这是否是技术术语]或不使用try-catch。