này hoạt động:Có thể sử dụng đối tượng chuỗi tuần tự tạm thời không?
stringstream temp;
temp << i;
result_stream << transform(temp.str());
(transform
là một chức năng mà phải mất một string
và trả về một string
; i
là một int
). Tuy nhiên, nỗ lực của tôi để cho C++ 11 tạo ra một đối tượng tạm thời mà không có một tên đã không làm việc:
result_stream << transform((stringstream() << i).str());
Tôi nghĩ rằng nó sẽ làm việc, kể từ thứ hai <<
chỉ nên trả lại số đầu tiên và tôi muốn được có thể sử dụng str()
trên đó. Nhưng tôi nhận được lỗi này:
error: 'class std::basic_ostream<char>' has no member named 'str'
Tôi đang sử dụng g ++ 4.8.1 (MinGW-W64).
Có cách nào để thực hiện điều này (ví dụ: viết mã như thế này bằng cách sử dụng tên tạm thời chưa được đặt tên)? (Đoạn mã trên là một chút đơn giản, và mã thực tế liên quan đến việc sử dụng <<
trên lập luận khác hơn int
.)
Đối với tác vụ này, tôi cân nhắc tạo một hàm chuyển đổi int thành chuỗi, đặc biệt nếu g ++/MinGW-64 vẫn không hỗ trợ std :: to_string –
có thể trùng lặp của [Sử dụng chuỗi ẩn danh để tạo chuỗi] http://stackoverflow.com/questions/19665458/use-an-anonymous-stringstream-to-construct-a-string) –