Khi gói initializations của một hằng số tôi thường xuyên chạy vào phạm vi vấn đềthử giới hạn khối phạm vi biến const
try {
const int value = might_throw();
}
std::cout << value << "\n"; /* error, value out of scope */
Hiện nay tôi sử dụng một giá trị tạm thời như một cách giải quyết. Có cách nào tốt hơn để xử lý các tình huống const
- try {}
không?
int tmp; /* I'd rather have tmp const */
try {
tmp = might_throw();
}
catch (...) {
/* do something */
}
const int value = tmp;
Lý do không sử dụng biến trong khối thử là gì? –
Biến có thể được sử dụng trong nhiều dòng theo khối thử. Bạn có nói rằng tôi nên mở rộng khối thử của tôi để kèm theo tất cả mọi thứ, ngay cả khi bao gồm nhiều dòng mã chỉ liên quan đến việc sử dụng biến? –
Không nhất thiết. Tôi chỉ muốn có được giải pháp dễ nhất (có khả năng). Tôi đồng ý rằng đó là một vấn đề trong một số trường hợp. –