boost::detail::addressof_impl::f()reinterpret_cast
रों की एक श्रृंखला में मामला class T
में वस्तु के वास्तविक पते प्राप्त करने के लिए operator&()
अतिभारित है किया जाता है:चार अस्थिर और आवश्यक क्यों और कब डाला जाता है?
template<class T> struct addressof_impl
{
static inline T* f(T& v, long)
{
return reinterpret_cast<T*>(
&const_cast<char&>(reinterpret_cast<const volatile char&>(v)));
}
}
const volatile char&
के बजाय सिर्फ char&
पर कास्ट करने के लिए कलाकारों का उद्देश्य क्या है?
यह 'कॉन्स' और 'अस्थिर' दोनों होने के लिए ऑक्सीमोरोनिक नहीं है। उदाहरण के लिए, केवल पढ़ने योग्य हार्डवेयर रजिस्टर जो प्रत्येक बार पढ़े जाने पर एक अलग मूल्य देता है, या किसी अन्य प्रक्रिया द्वारा अपडेट की गई साझा मेमोरी में केवल-पढ़ने वाली वस्तु, दोनों क्वालीफायर होना चाहिए। –
यूप। कॉन्स का वह पहलू वास्तव में अस्थिर के साथ संगठित है। – Ari