অ্যালেকজান্ডার স্টেপানভ এবং মেং লী ১৯৯৪ সালের মার্চ মাসে সি++ মান নির্ধারক পরিষদের কাছে স্ট্যান্ডার্ড টেম্পলেট লাইব্রেরী (এস,টি,এল) উপস্থাপন করেন। বেশ কিছু ইস্যু থাকা সত্ত্বেও লাইব্রেরিটি প্রাথমিক অনুমোদন পায়। প্রকৃতপক্ষে, স্টেপানভকে লাইব্রেরী কন্টেইনারগুলোকে মূল মেমোরি মডেল থেকে স্বাধীন করার জন্য অনূরোধ করা হয়েছিল, যা থেকেই মূলতঃ অ্যালোকেটর উদ্ভাবিত হয়। ফলস্বরূপ, সকল এস,টি,এল কন্টেইনার ইন্টারফেসগুলোকে আবার নতুন ভাবে লিখতে হয়েছিল যাতে তারা অ্যালোকেটর গ্রহণ করতে পারে।

এস,টি,এল কে সি++ স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্তির কাজে স্টেপানভ মান নির্ধারক পরিষদের কয়েকজন সদস্যদের সাথে ঘনিষ্ঠভাবে কাজ করেছেন, অ্যান্ড্রু কেইনিগ এবং বিয়ারনে স্ট্রোভস্ট্রুপ তাদের মধ্যে অন্যতম, যারা লক্ষ্য করেন যে রূপান্তরিত অ্যালোকেটরসমূহকে ব্যবহার করা যেতে পারে স্থায়ী স্টোরেজ এস,টি,এল কন্টেইনার সম্পাদনের ক্ষেত্রে, যেটা সেসময় স্টেপানভ "গুরুত্বপূর্ণ এবং কৌতূহল উদ্দীপক দূরদৃষ্টি" হিসেবে বিবেচনা করেন।
মূল অ্যালোকেটরের প্রস্তাবে প্রোগ্রামিং ভাষার কিছু বৈশিষ্ট্য অন্তর্ভুক্ত ছিল যা এখনও পরিষদ দ্বারা গৃহীত হয় নাই, যেমন টেম্পলেট আর্গুমেন্ট ব্যবহার করা যারা নিজেরাই টেম্পলেট। যেহেতু এইসব বৈশিষ্ট্য বিদ্যমান কোনো কম্পাইলার কম্পাইল করতে পারে না, তখন স্টেপানভের মতে, "অসম্পাদিত বৈশিষ্ট্যগুলো আমরা সঠিক ভাবে ব্যবহার করি তা যাচাই করতে বিয়ারনে স্ট্রোভস্ট্রুপ এবং অ্যান্ড্রু কেইনিগ প্রচুর সময়ের প্রয়োজন ছিল।" লাইব্রেরিটি ইতিপূর্বে পয়েন্টার এবং রেফারেন্স টাইপ সরাসরি ব্যবহার করছিল, এটা এখন শুধুমাত্র অ্যালোকেটর দ্বারা সংজ্ঞায়িত টাইপসমূহকেই নির্দেশ করতে পারে। স্টেপানভ পরে অ্যালোকেটরের বর্ণনা দেন এরকমঃ "এস,টি,এল এর একটি চমৎকার বৈশিষ্ট্য হচ্ছে যে স্থানে মেশিন-সংশ্লিষ্ট টাইপ উল্লেখ করা হয় তা মোটামুটি ১৬ লাইন কোডের মধ্যে নিরাপদে আছে।"

যদিও স্টেপানভ মেমোরি মডেলের পরিপূর্ণ নিরাপত্তা মূলত অ্যালোকেটরসমূহের দ্বারা সঙ্কল্পিত করেন, মান নির্ধারক কমিটি উপলব্ধি করে যে এই উপায় অপ্রীতিকর কার্যকারিতা অবক্ষয়ের দিকে নিয়ে যেতে পারে। এর প্রতিকার করার জন্য, অতিরিক্ত বাক্য অ্যালোকেটরসমূহের আবশ্যিকতায় যুক্ত করা হয়। নির্দিষ্টভাবে, কনটেইনার এর বাস্তবায়ন এটা মনে করতে পারে যে, পয়েন্টার এবং ইন্টেজার টাইপের জন্য অ্যালোকেটরের সংজ্ঞা ডিফল্ট অ্যালোকেটরের সমতুল্য।,

In particular, container implementations may assume that the allocator's type definitions for pointers and related integral types are equivalent to those provided by the default allocator, and that all instances of a given allocator type always compare equal, effectively contradicting the original design goals for allocators and limiting the usefulness of allocators that carry state.

Stepanov later commented that, while allocators "are not such a bad [idea] in theory (...) [u]nfortunately they cannot work in practice". He observed that to make allocators really useful, a change to the core language with regards to references was necessary.

The 2011 revision of the C++ Standard removed the weasel words requiring that allocators of a given type always compare equal and use normal pointers. These changes make stateful allocators much more useful and allow allocators to manage out-of-process shared memory. The current purpose of allocators is to give the programmer control over memory allocation within containers, rather than to adapt the address model of the underlying hardware. In fact, the revised standard eliminated the ability of allocators to represent extensions to the C++ address model, formally (and deliberately) eliminating their original purpose.

ব্যবহার
পটভূমি
নিজস্ব অ্যালোকেটরসমূহ
আবশ্যকতা