क्या ये काम करेगा? हाँ।
क्या आपको इसका इस्तेमाल करना चाहिए? नहीं।
माइक्रो-ऑप्टिमाइज़ेशन के इस प्रकार से समझ में आएगा:
आपने कोड को देखा है कि कंपाइलर ऐसा करने के सीधे तरीके (असाइनमेंट और एक अस्थायी) के लिए उत्पन्न होता है और यह निर्णय लिया कि XOR का दृष्टिकोण अधिक तेज़ कोड बनाता है
आपने अपने ऐप को प्रोफाइल कर लिया है, और सीधे दृष्टिकोण की लागत को कोड की स्पष्टता से बाहर कर दिया है (और परिणामस्वरूप स्थिरता में बचत)
पहले बिंदु पर, जब तक आपने यह माप नहीं किया है, आपको कंपाइलर पर भरोसा करना चाहिए। जब आप जो करने की कोशिश कर रहे हैं उसके शब्दार्थ स्पष्ट हैं, तो बहुत सारे ट्रिक्स हैं जो कंपाइलर कर सकते हैं, जिसमें वेरिएबल एक्सेस को फिर से व्यवस्थित करना शामिल है ताकि स्वैप को बिल्कुल भी ज़रूरत न हो, या जो भी मशीन स्तर के निर्देश सबसे तेज़ प्रदान करता है किसी दिए गए डेटा प्रकार के लिए स्वैप करें। "ट्रिक्स" जैसे कि XOR स्वैप कम्पाइलर के लिए यह देखना कठिन बना देता है कि आप क्या करने की कोशिश कर रहे हैं, और इस तरह से इस तरह के अनुकूलन को लागू करने में कम सक्षम बनाते हैं।
दूसरे बिंदु पर, आप जोड़ा जटिलता के लिए क्या हासिल कर रहे हैं? यहां तक कि अगर आपने मापा और XOR दृष्टिकोण को तेजी से पाया है, तो क्या यह कम स्पष्ट दृष्टिकोण को सही ठहराने के लिए पर्याप्त प्रभाव है? आपको कैसे मालूम?
अंत में, आपको यह देखना चाहिए कि क्या आपके प्लेटफ़ॉर्म / भाषा के लिए कोई मानक स्वैप फ़ंक्शन है - C ++ STL, उदाहरण के लिए, एक टेम्पलेट स्वैप फ़ंक्शन प्रदान करता है जो आपके कंपाइलर / प्लेटफ़ॉर्म के लिए अत्यधिक अनुकूलित होगा।