प्रारंभ करने के लिए प्रारंभकर्ता-सूची प्रारंभिक-सूची के माध्यम से नेस्टेड (2 डी) std::array
प्रारंभ करने के लिए कैसे करें?2 डी std :: सरणी सदस्य
template <std::size_t W, std::size_t H>
class Block
{
std::array<std::array<int, W>, H> block;
public:
template <typename ...E>
Block(E&&...e) : block {{std::forward<E>(e)...}} {}
};
वर्ग Block
चाहिए के रूप में नीचे block
सदस्य को प्रारंभ करने में सक्षम:
Block<3, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
नोट:
std::array<std::array<int, 3>, 2> b {{ {1, 2, 3}, {4, 5, 6} }};
: हम सी ++ 11 में सीधे
std::array
प्रारंभ करने की क्षमता है
मैं जीसीसी -4.9.0
का उपयोग कर रहा हूँ
बनाने 'तक block' निजी और एक ctor,' Block' अब isn 'उपलब्ध कराने के एक और अधिक नहीं। चूंकि ब्रेसिड-शुरुआतीकर्ताओं को कभी भी नहीं लिया जाता है, 'ब्लॉक <3,2>' प्रकार के ऑब्जेक्ट के लिए प्रारंभिक वैध केवल 'ब्लॉक <3,2> बी {1,2,3,4,5,6} ' – dyp
पुन: संशोधन के लिए इसे वापस रोल करें जवाब के लिए समझ में आता है, फिर एक नया सवाल पूछें। – Shog9