अभिन्न प्रकार के लिए std :: परमाणु की पूर्ण विशेषज्ञता अंकगणितीय यौगिक असाइनमेंट ऑपरेटर जैसे +=
, -=
प्रदान करती है, लेकिन *=
या /=
नहीं है। मानक यह कहता है लेकिन जहां तक मैं देख सकता हूं कि कोई कारण नहीं है। क्या परमाणु संचालन पुस्तकालय खंड के पीछे तर्क से परिचित कोई इस पर कुछ प्रकाश डाल सकता है?क्यों std :: atomic <integral> विशेषज्ञता गुणा और विभाजन असाइनमेंट ऑपरेटर प्रदान करते हैं?
7
A
उत्तर
9
मुझे लगता है कि यह हार्डवेयर से संबंधित है। कई प्लेटफॉर्म पर +=
को संभालने के लिए परमाणु हैं लेकिन मुझे *=
प्रदान करने वाले किसी भी व्यक्ति के बारे में पता नहीं है। लॉकिंग के माध्यम से इसे कार्यान्वित करना आसान होगा, लेकिन std::atomic
का इंटरफ़ेस उसी स्तर के संचालन में मिश्रण करेगा जो कि बहुत महंगी परिचालनों के साथ किसी भी तरह सस्ते है।
यह मेरा संदेह था। मुझे लगता है कि यही कारण है कि थोड़ा सा और, OR और XOR ops लेकिन कुछ भी स्थानांतरित नहीं हो रहा है। – juanchopanza