Teknik olarak, eşleşmemiş std::allocator
uzmanlık alanı (kesinlikle, void
için uzmanlık alanı dışında) STL kapsayıcıları için şablon parametresi olarak (hepsi değil, ancak aşağıda artı unordered_ (çok) harita /) set? Aşağıdaki kodu derler.bazı STL konteynerler için uyumsuz std :: allocator
#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;
}
Bu ayırıcısı hemen olmanın kaynak tipine bağlı olmadan yatan düğüm tipine ribaund nedeniyle olduğuna inanıyoruz.
Ben tanımsız davranış olabilir derdim ama bilmiyorum allocator zaten farklı türlerde aynıdır) –