सी ++ 11 मानक को देखते हुए। मैं देख सकता हूं कि std::tuple_size
और std::tuple_element
का विशेषज्ञता volatile
और const volatile
टुपल के लिए प्रदान किया गया है।अस्थिर और कॉन्स अस्थिर std :: tuple और std ::
template <size_t I, class T> class tuple_element<I, volatile T>;
template <size_t I, class T> class tuple_element<I, const volatile T>;
template <class T> class tuple_size<volatile T>;
template <class T> class tuple_size<const volatile T>;
लेकिन std::get
के लिए volatile
या const volatile
टपल कोई प्रस्ताव विशेषज्ञता है।
मैं GCC.4.8.1 पर निम्नलिखित कोड की कोशिश की
volatile std::tuple<int, int> a(1, 1);
std::cout << "a<0>=" << std::get<0>(a) << "\n";
मैं त्रुटि: no matching function for call to 'get(volatile std::tuple<int, int>&)'
तो अगर मैं समझता हूँ कि मैं (स्थिरांक) अस्थिर tuples बना सकते हैं, लेकिन मैं उनके तत्वों उपयोग नहीं कर सकते ।
क्या यह एक अपेक्षित व्यवहार या पर्यवेक्षण है?
बहुत बहुत धन्यवाद।
जीसीसी 4.9 या तो काम नहीं करता है, fwiw। – Barry
'कॉन्स्ट अस्थिर' मुझे एक अजीब संयोजन के रूप में मारता है। किसी को इसका वैध उपयोग पता है? – Cameron
@ कैमरॉन हार्डवेयर रजिस्ट्रार जिन्हें लिखा नहीं जाना चाहिए लेकिन उदाहरण के लिए, आपके तहत बदला जा सकता है। –