Tôi đang cố gắng viết một lớp bao gồm biến có loại sẽ được chọn là giá trị nhỏ nhất có thể chứa giá trị.Chọn loại số nguyên nhỏ nhất dựa trên phao
Những gì tôi có nghĩa là:
class foo {
"int type here" a;
}
Tôi đã xem qua Automatically pick a variable type big enough to hold a specified number. Do khó khăn khi sử dụng thư viện tăng cường, tôi đã tiếp tục và sử dụng các đề xuất mẫu.
Đó biến mã vào:
template<unsigned long long T>
class foo {
SelectInteger<T>::type a;
}
Tuy nhiên, vấn đề của tôi nảy sinh từ thực tế là kích thước của biến là kết quả khi nhân một biến dấu chấm động và số nguyên. Vì vậy, những gì tôi muốn để có thể làm là:
template<unsigned long long T, double E>
class foo {
SelectInteger<T*E>::type a;
}
Nhưng kể từ khi mẫu không làm việc với các biến điểm (xem here) nổi, tôi không thể vượt qua E
trong một mẫu. Có cách nào khác tôi có thể vượt qua một biến (mà nên có sẵn trong quá trình biên dịch) cho lớp học?
không bao giờ biết về constexpr. Cảm ơn rất nhiều. –