क्या यह तकनीकी रूप से std::allocator
विशेषज्ञता (निश्चित रूप से, void
के लिए विशेषज्ञता के अलावा) एसटीएल कंटेनर के लिए टेम्पलेट पैरामीटर के रूप में उपयोग करने के लिए मान्य है (उन सभी में से नहीं, लेकिन नीचे उल्लिखित प्लस unordered_ (बहु) मानचित्र/सेट)? निम्नलिखित कोड ठीक संकलित करता है।कुछ एसटीएल कंटेनर के लिए विस्मृत std :: आवंटक
#include <list>
#include <forward_list>
#include <deque>
#include <set>
#include <map>
int main()
{
struct A { bool operator < (A) const { return true; } };
struct B {};
struct C {};
std::list< A, std::allocator<C> > l;
std::forward_list< A, std::allocator<C> > fl;
std::deque< A, std::allocator<C> > d;
std::set< A, std::less<A>, std::allocator<C> > s;
std::multiset< A, std::less<A>, std::allocator<C> > ms;
std::map< A, B, std::less<A>, std::allocator<C> > m;
std::multimap< A, B, std::less<A>, std::allocator<C> > mm;
}
मेरा मानना है कि इस संभाजक तुरंत किया जा रहा है इसके स्रोत प्रकार से कोई संबंध के बिना अंतर्निहित नोड प्रकार के लिए पलटाव के कारण है।
मैं कहना चाहता हूँ यह अनिर्धारित व्यवहार हो सकता है, लेकिन मैं नहीं जानता कि (शायद आवंटक वैसे भी विभिन्न प्रकार के लिए समान है) –