में सीएएस को कैसे कार्यान्वित करें मैं जानना चाहता हूं कि C++ 11 में compar_and_swap को कैसे कार्यान्वित किया जाए। यहाँ मैं क्या करने की कोशिश की है:सी ++ 11
template<typename T>
T compare_and_swap(atomic<T>& reg,T newVal)
{
bool success = false;
T oldVal;
do
{
oldVal = reg.load();
success = reg.compare_exchange_weak(oldVal,newVal);
}while(!success);
return oldVal;
}
इस लागू करने के लिए एक बेहतर तरीका है?
आपको http://codereview.stackexchange.com/ – Raistmaj
तुलना में पूछने की कोशिश करनी चाहिए तुलना_exchange पहले ही स्वैप करता है, आपको बिल्कुल अपने रैपर की आवश्यकता नहीं है। – Mat
@ मेट नकारात्मक, तुलना_ विनिमय कुछ निश्चित स्थिति में निश्चित रूप से कोड लाइन जोड़ देगा। ऐसी स्थिति जो तुलना_and_swap की semantics की आवश्यकता है कई बार –
AntiMoron