Std के सभी कंस्ट्रक्टर :: स्पैन को कॉन्स्टैक्स घोषित किया गया है, हालाँकि मुझे लगता है कि उनमें से किसी को भी कॉन्स्ट्रेक्स के संदर्भ में काम करने की जरूरत नहीं है। नीचे दिए गए किसी भी कमी को पूरा करने के परिणामस्वरूप संकलन त्रुटि हो जाएगी।
#include <array>
#include <span>
int main()
{
constexpr int carray[3] = { 0, 1, 2 };
constexpr std::array<int, 3> array{ 0, 1, 2 };
using S = std::span<const int, 3>;
/*constexpr*/ S span1{ array.data(), 3 };
/*constexpr*/ S span2{array.begin(), array.end()};
/*constexpr*/ S span3{carray};
/*constexpr*/ S span4{array};
}
क्या वास्तव में एक कॉन्स्ट्रेक्स स्पैन प्रकार बनाना संभव है, क्योंकि ऐसा लगता है कि कंस्ट्रक्टरों का कभी भी संकलन समय पर मूल्यांकन नहीं किया जा सकता है जब उन्हें एक पॉइंटर या संदर्भ को इनिशियलाइज़ करना है?
कमियों को हटाएं उन्हें हटा न दें।
—
एंड्रियास लोंजोए
आप एक क्रम अवधि की शुरुआत कर रहे हैं जिसका अर्थ है कि मैं एक कॉन्स्ट्रेक्स स्पैन को शुरू करने के लिए हूं
—
एंड्रियास लोन्जो
रवींद्र। निश्चित नहीं कि मैंने ऐसा क्यों किया। कोई बात नहीं
—
नाथनऑलवर
अजीब है, यह नहीं देखना चाहिए कि यह अवधि केवल स्थानीय दायरे के अंदर ही क्यों रहती है ...
—
एंड्रियास लोन्जोई
बारीकी से संबंधित: stackoverflow.com/q/57545503/2069064
—
बैरी