Trong gcc 4.2, công trình này:Xcode/LLVM bắt khoản không phù hợp với loại có nguồn gốc
#include <stdexcept>
#include <iostream>
int main() {
try {
throw std::runtime_error("abc");
} catch (const std::exception& ex) {
std::cout << ex.what();
}
}
Trong Xcode 4.3.2 (iOS với LLVM 3.1, -std = C++ 11), điều này không thành công với terminate called throwing an exception
, không bao giờ đạt dòng 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);
}
Nhưng công trình này:
#include <stdexcept>
int main() {
try {
throw std::runtime_error("abc");
} catch (const std::runtime_error& ex) {
NSLog(@"%s", ex.what());
}
return UIApplicationMain(argc, argv, nil, nil);
}
gì cho?
Đi ra 'const' và cho chúng tôi biết những gì bạn nhận được. –
@MarkRansom: Không thay đổi. Tôi đã thử '... catch (std :: exception ex)…' too; một lần nữa, không thay đổi. –