Có cách nào để tăng gấp đôi độ chính xác được trả về bằng cách nhân (để tránh tràn) không?Sửa đổi kiểu mẫu C++ T thành "T dài"?
template<class T> class MyClass {
T multiply (T a, T b) { return a * b; }
}
Cái gì như:
long T multiply (T a, T b) { return a * b; }
Vì vậy mà dù 'int', 'dài', hoặc 'đúp' đã được đưa ra, một 'dài int', 'dài dài', hoặc 'dài gấp đôi 'sẽ được trả lại từ nhân.
Đây là câu hỏi chung. Tôi đang làm việc xung quanh nó bằng cách sử dụng một đôi trong nội bộ. Nhưng câu hỏi của tôi là liệu có bất kỳ cơ chế nào để quảng bá một loại cho biến thể "dài" của nó trong C++ không?
Đây có thể là tốt hơn để chỉ sử dụng 'long' dài là' T' của bạn nếu bạn muốn tránh tràn. – Pubby
'long' không phải là một vòng loại có thể được áp dụng cho tên loại; 'long int' là một tên kiểu không thể tách rời xảy ra với hai từ khóa' long' và 'int'. –
Tôi không hiểu tại sao bạn muốn sử dụng "T dài". T là một tham số mẫu và nó có thể là bất kỳ kiểu nguyên thủy hoặc thể hiện của đối tượng mà bạn muốn, khi bạn sử dụng toán tử * dài. Trong một số trường hợp, bạn có thể truyền T đến lâu. – user1929959