के रूप में अज्ञात आकार के साथ boost :: array का उपयोग कैसे करें मैं कक्षा सदस्य के रूप में boost :: array का उपयोग करना चाहता हूं, लेकिन मुझे संकलन समय पर आकार नहीं पता है। मैं कुछ इस तरह के बारे में सोचा है, लेकिन यह काम नहीं करता है:ऑब्जेक्ट वेरिएबल
int main() {
boost::array<int, 4> array = {{1,2,3,4}};
MyClass obj(array);
}
class MyClass {
private:
boost::array<int, std::size_t> array;
public:
template<std::size_t N> MyClass(boost::array<int, N> array)
: array(array) {};
};
संकलक, जीसीसी, कहते हैं:
error: type/value mismatch at argument 2 in template parameter list for
‘template<class _Tp, long unsigned int _Nm> struct boost::array’
error: expected a constant of type ‘long unsigned int’, got ‘size_t’
कौन सा स्पष्ट रूप से मतलब है कि एक वर्ग के सदस्यों के रूप में चर आकार सरणियों उपयोग नहीं कर सकते । यदि ऐसा है, तो यह वेक्टर या मानक सरणी पर boost :: सरणी के सभी फायदों को अस्वीकार कर देगा।
क्या आप मुझे दिखा सकते हैं कि मैंने क्या गलत किया?
उल्लिखित त्रुटि 'boost :: array 'के बारे में है, और वह ऐसा लगता है कि यह सही ढंग से व्याख्या करता है। –