पर आधारित सबसे छोटा पूर्णांक प्रकार चुनें, मैं एक कक्षा लिखने की कोशिश कर रहा हूं जिसमें एक वेरिएबल शामिल है जिसका प्रकार मूल्य रखने में सबसे छोटा संभव होने के लिए चुना जाएगा।फ्लोट
क्या मेरा मतलब है:
class foo {
"int type here" a;
}
मैं Automatically pick a variable type big enough to hold a specified number बारे में जाना। बूस्ट लाइब्रेरी का उपयोग करने में कठिनाइयों के कारण, मैं आगे बढ़ गया और टेम्पलेट सुझावों का उपयोग किया।
कि में कोड बदल जाता है:
template<unsigned long long T>
class foo {
SelectInteger<T>::type a;
}
हालांकि, मेरी समस्या यह है कि चर के आकार एक चल बिन्दु चर और पूर्णांक गुणा का परिणाम है से उठता है। इसलिए, मैं क्या करने में सक्षम होना चाहते हैं:
template<unsigned long long T, double E>
class foo {
SelectInteger<T*E>::type a;
}
लेकिन चूंकि टेम्पलेट्स चल बिन्दु चर (here देखें) के साथ काम नहीं है, मैं एक टेम्पलेट में E
पारित नहीं कर सकते हैं। क्या कोई और तरीका है कि मैं कक्षा में एक चर (जिसे संकलन के दौरान उपलब्ध होना चाहिए) पास कर सकता हूं?
constexpr के बारे में कभी नहीं जानता था। बहुत बहुत धन्यवाद। –