A size-optimized STL implementation.
C++ Objective-C Other
Latest commit 4acf150 Jul 28, 2016 @msharov Remove C-style comments
Permalink
Failed to load latest commit information.
bvt Remove C-style comments Jul 28, 2016
docs Update size benchmark results for the current release. Jan 22, 2016
.gitignore Update build system Sep 28, 2015
Config.mk.in Remove -Wno-long-double on MacOS. Apparently this warning is no longe… Jan 6, 2016
LICENSE Set all copyright dates to initial file creation to not abuse the alr… Mar 16, 2011
Makefile Remove self-symlink used for bvts. Fixes #25. Mar 3, 2016
README Add README and web docs with gh-pages Nov 13, 2013
bktrace.cc Coding style changes Nov 25, 2014
bktrace.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
cmemlink.cc Coding style changes Nov 25, 2014
cmemlink.h Coding style changes Nov 25, 2014
config.h.in Remove C-style comments Jul 28, 2016
configure Remove C-style comments Jul 28, 2016
fstream.cc Remove C-style comments Jul 28, 2016
fstream.h Coding style changes Nov 25, 2014
memblock.cc Pull more system includes into utypes.h, before force inline define. May 9, 2016
memblock.h Coding style changes Nov 25, 2014
memlink.cc Add noexcept wherever possible Feb 15, 2013
memlink.h Coding style changes Nov 25, 2014
metamac.h Replace header guards with pragma once Dec 4, 2012
mistream.cc Set eofbit|failbit in istream underflow Jan 6, 2016
mistream.h Add iterator_category type to all iterators, and its value tags. Closes Jan 10, 2016
mostream.h Add iterator_category type to all iterators, and its value tags. Closes Jan 10, 2016
ofstream.cc Pull more system includes into utypes.h, before force inline define. May 9, 2016
ofstream.h Move putback from istringstream to ifstream because istringsteam is a… Jan 13, 2016
simd.h Fixes to compile with clang 3.7 Jan 6, 2016
sistream.cc Fix potentially uninitialized value read from an invalid stream. Fixes Feb 27, 2016
sistream.h Implement setw and setprecision manipulators. Jan 16, 2016
sostream.cc Change ostringstream default fill to 0 for ABI compatibility May 11, 2016
sostream.h Implement ostringstream fill and setfill manip. Closes #58. May 11, 2016
strmsize.h Coding style changes Nov 25, 2014
traits.h Zero memory when constructing POD types instead of calling ctors Dec 21, 2015
typeinfo.h Move forced inline define after inclusion of libstdc++ headers due to… Feb 27, 2016
typelist.h Replace header guards with pragma once Dec 4, 2012
typet.h Remove tm::Conversion<T,U>::exists2Way Jan 9, 2016
ualgo.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
ualgobase.cc Remove unused stosv spec for non-intel builds Jan 6, 2016
ualgobase.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
uarray.h Restrict initializer_list use to c++11 mode Sep 28, 2015
uatomic.h Move forced inline define after inclusion of libstdc++ headers due to… Feb 27, 2016
ubitset.cc Add noexcept wherever possible Feb 15, 2013
ubitset.h Coding style changes Nov 25, 2014
uctralgo.h Coding style changes Nov 25, 2014
uctrstrm.h Fix printing of empty vectors. Jan 13, 2016
uerror.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
uexception.cc Move libc_exception, file_exception, and stream_bounds_exception to s… Dec 25, 2015
uexception.h Move forced inline define after inclusion of libstdc++ headers due to… Feb 27, 2016
ufunction.h Coding style changes Nov 25, 2014
uheap.h Implement c++11 members of priority_queue Apr 3, 2016
uios.h Optimize istringstream get string Jan 8, 2016
uiosfunc.h Implement setw and setprecision manipulators. Jan 16, 2016
uiterator.h Add iterator template Jan 11, 2016
ulaalgo.h Coding style changes Nov 25, 2014
ulimits.h Zero memory when constructing POD types instead of calling ctors Dec 21, 2015
ulist.h Replace deque define with a template alias Jan 13, 2016
umap.h Restrict initializer_list use to c++11 mode Sep 28, 2015
umatrix.h Coding style changes Nov 25, 2014
umemory.h Include <intializer_list> when --with-libstdc++. Fixes #63. Jul 14, 2016
umultimap.h Restrict initializer_list use to c++11 mode Sep 28, 2015
umultiset.h Restrict initializer_list use to c++11 mode Sep 28, 2015
unew.cc Remove unused argument n in MacOS version of sized delete operators Jan 9, 2016
unew.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
unumeric.h Coding style changes Nov 25, 2014
upair.h Do not remove lvalue make_pair for c++11 Feb 8, 2016
upredalgo.h Coding style changes Nov 25, 2014
uqueue.h Implement c++11 members of priority_queue Apr 3, 2016
uset.h Restrict initializer_list use to c++11 mode Sep 28, 2015
uspecial.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
ustack.h Implement c++11 members of priority_queue Apr 3, 2016
ustdxept.cc Pull more system includes into utypes.h, before force inline define. May 9, 2016
ustdxept.h Rename libc_exception to system_error; in c++14 that is now a standard Dec 25, 2015
ustl.h Use atomic refcount in shared_ptr May 31, 2016
ustldoc.in Bump version number for release May 10, 2016
ustring.cc Remove C-style comments Jul 28, 2016
ustring.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
utf8.h Fix utf8out_iterator postfix ++ to not create a new iterator Mar 22, 2016
uttraits.h Fallback to __has_trivial* from __is_trivially* for gcc <5 Jan 9, 2016
utuple.h Restrict initializer_list use to c++11 mode Sep 28, 2015
utypes.h Include <intializer_list> when --with-libstdc++. Fixes #63. Jul 14, 2016
uutility.h Pull more system includes into utypes.h, before force inline define. May 9, 2016
uvector.h vector.data should cast to return type. Fixes #62. Jul 14, 2016

README

                         ####  #####  #
                         #       #    #
                    # #  ####    #    #
                    # #     #    #    #
                    ###  ####    #    ####
                    #
============================================================================

uSTL is a partial implementation of the C++ standard library that focuses on
decreasing the memory footprint of user executables. While many projects can
use it to replace the standard library without any code changes, there exist
important differences that you should be aware of. Please read documentation
in docs/index.html (or online at http://msharov.github.io/ustl) before using
this library in your project.

uSTL ought to still compile under gcc as old as 2.95, but many features will
be unavailable. For best results, including C++11 support, use at least 4.6.
Clang 3.2 or later is also supported. There are no other dependencies.

Latest version:		https://github.com/msharov/ustl/releases/latest

./configure && make && make check && make install

Build configuration is in Config.mk and config.h, generated by configure.

Bug tracker:		https://github.com/msharov/ustl/issues
Working git branch:	https://github.com/msharov/ustl