swap
समारोह टेम्पलेट C++ 0x में <utility>
को <algorithm>
से ले जाया गया था। क्या पूर्व में बाद में सी ++ 0x में शामिल है? या क्या वे दोनों एक सामान्य शीर्षलेख शामिल करते हैं जो swap
को परिभाषित करता है?क्या std :: swap अभी भी C++ 0x में एल्गोरिदम समेत परिभाषित किया जाएगा?
दूसरे शब्दों में, निम्न कोड C++ 0x में संकलित करने के लिए गारंटी है?
#include <algorithm> // will this pull in std::swap?
// ...
using std::swap;
swap(a, b);
क्यों नहीं 'std :: swap' हमेशा अंदर' ' रह रहा? :) –
fredoverflow
समिति इस पर पहिया पर सो रही थी। ' 'में' एल्गोरिदम 'का उपयोग करें' स्वैप 'का उपयोग करें, और इसलिए यह दायरे में होना चाहिए। हमें गारंटी देनी चाहिए कि '' अभी भी 'स्वैप' में खींचता है, क्योंकि अभ्यास में यह हमेशा * होगा। जैसे 'int i, j; std :: iter_swap (और मैं, &j); '* * काम है करने के लिए –
@Howard: और यह सही है कि एक बार प्रयोक्ता परिभाषित प्रकार खेलने में लाया जाता है, यह * चाहिए * हो" असली "' std :: swap' प्रयोग किया जाता है उन एल्गोरिदम द्वारा, केवल कुछ अन्य कोड नहीं जो मूल्यों को स्वैप करने का प्रभाव रखते हैं, क्योंकि उपयोगकर्ता 'std :: swap' और एल्गोरिदम का विशेषज्ञ हो सकता है, फिर विशेषज्ञता का उपयोग करना चाहिए? –