2011-11-09 17 views
5

Có thể boost::lexical_cast<std::string>(Int_Type) ném? Thời gian duy nhất tôi có thể nghĩ về nơi sẽ không có mem cho chuỗi nhưng có thể có bất kỳ lựa chọn khác, hợp lý hơn?Có thể tăng thêm :: lexical_cast <std::string> (Int_Type) bao giờ ném?

+0

Định nghĩa của bạn về 'boost ' là gì? –

+1

-1 Không có thứ gì như 'boost '. –

+2

@KerrekSB cuối Ernest xin lỗi tôi có nghĩa là tăng :: lexical_cast (Int_Type) – smallB

Trả lời

3

Theo số documentation, lexical_cast có thể ném bad_lexical_cast. Trên hết, như bạn đã đề cập, có thể có phân bổ động, điều này luôn có thể gây ra ngoại lệ bad_alloc.

Chỉnh sửa: Đối với trường hợp cụ thể lexical_cast<std::string, int>, dường như không có bất kỳ phần nào trong chuỗi có thể bị lỗi ngoài lỗi phân bổ, nhưng tài liệu không (theo kiến ​​thức của tôi) đảm bảo sẽ không có một ngoại lệ "xấu".

+0

Làm thế nào bad_lexical_cast có thể được ném khi chuyển đổi int thành chuỗi? – CharlesB

+0

Trong quá trình cấp phát bộ nhớ cho chuỗi std ::? – luke

+1

@CharlesB: Có lẽ nó không thể, bạn nói đúng. Có lẽ nếu các đối tượng dòng cơ bản không thành công vì lý do nào đó ... mặc dù cách duy nhất tôi có thể nhìn thấy * rằng * xảy ra là một lần nữa bằng cách phân bổ thất bại, mà chỉ đơn giản là bong bóng lên như một ngoại lệ 'bad_alloc' ... –

Các vấn đề liên quan