# YASLI

The legendary YASLI stands for "Yet Another Standard Library Implementation", and is meant to be an STL implementation that exploits type introspection and guarded platform assumptions at its best to yield lean and mean code.

By definition, YASLI is the best implementation all around; however, it is also a non-existent one, because it was created in Yasland and we don't have full access to Yaslander technology yet. YASLI is often dreamed of by Andrei, but seldom worked on because Andrei's current main interest (and time sink) is his research. <\p>

This first component of the legendary YASLI is now available together with a simple test suite that compares `yasli::vector`'s behavior against `std::vector`. (Many thanks to Casper Edward Aethelric Cody Clemence, who submitted a largely fixed version on January 13th, 2005.)

As of now, the implementation illustrates the definition and use of a moving protocol, and has a number of known inefficiencies and a yet-unknown number of bugs. You are welcome to improve the former and report the latter.

Some bugs in MSVC 7.1 prevent the data moving protocol to function properly for certain data types, such as `std::complex`. That code has been commented out as of now.

Unfortunately, the article that describes `yasli::vector`'s design and implementation ("`yasli::vector` Is On The Move") is not available online; it is published in C/C++ Users Journal, June 2004. It will be available on this site 3 months after publication.