#include <stdexcept>#include <iostream>int main() { try { throw std::runtime_error("abc"); } catch (const std::exception& ex) { std::cout << ex.what(); }}
在Xcode 4.3.2(带有LLVM 3.1的iOS,-std = c 11)中,这会因为终止而失败,称为抛出异常,从未到达NSLog(…)行:
#include <stdexcept>int main() { try { throw std::runtime_error("abc"); } catch (const std::exception& ex) { NSLog(@"%s",ex.what()); } return UIApplicationMain(argc,argv,nil,nil);}
但这有效:
#include <stdexcept>int main() { try { throw std::runtime_error("abc"); } catch (const std::runtime_error& ex) { NSLog(@"%s",nil);}
是什么赋予了?
解决方法 gcc是正确的:15.3p3 A handler is a match for an exception object of type
… or the handler is of type cvE
ifT
or cvT&
andT
is an unambiguous public base class ofE
,or …
这听起来像是一个xcode BUG(而且是一个令人惊讶的基本错误!)
总结以上是内存溢出为你收集整理的c – Xcode / LLVM catch子句与派生类型不匹配全部内容,希望文章能够帮你解决c – Xcode / LLVM catch子句与派生类型不匹配所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)