Tôi chỉ biết rằng C++ có một số std::to_string()
được xác định trong <string>
. Bây giờ tôi tự hỏi tại sao to_string()
chỉ hoạt động với các loại số. Có lý do cụ thể nào không, tại sao không có một tổng quát hơnTại sao chỉ có `to_string()` cho các loại số?
template <typename T>
std::string to_string(const T& t);
?
thể được thực hiện như thế này:
template <typename T>
std::string to_string(const T& t) {
std::ostringstream s;
s << t;
return s.str();
}
tôi nghi ngờ rằng đó là chung to_string
không tồn tại, bởi vì nó rất dễ dàng để viết riêng của bạn, nhưng lập luận tương tự sẽ áp dụng đối với các to_string()
tham int
, double
, v.v.
Chỉ cần hai xu của tôi ... Nhưng những chức năng này là cách quá giới hạn để được xứng đáng được trong std ... Một cái gì đó như Boost.Format hoặc lexical_cast sẽ có được rất nhiều, và tôi có nghĩa là hữu ích hơn rất nhiều. Các hàm to_string này rất cơ bản và chỉ hữu dụng trong các kịch bản cơ bản nhất, có nghĩa là chúng vô dụng trong cuộc sống thực. – rubenvb
Đừng bỏ qua một phiếu bầu. Có thể chỉ là một người có một ngày tồi tệ. –
Thực tế, có một đề xuất về vấn đề này http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0117r0.html, nhưng đừng nghĩ rằng nó sẽ được chấp nhận đôi khi – DAle