A size-optimized STL implementation.
Clone or download
Latest commit 71b46b0 Oct 22, 2018
Permalink
Failed to load latest commit information.
docs Restyle the documentation css Mar 30, 2018
test Add static scope in tests where appropriate Jun 12, 2018
.gitignore Add pkg-config file Nov 19, 2017
Config.mk.in Use mkdir -p instead of install -D to accomodate stone age BSD May 25, 2018
LICENSE Set all copyright dates to initial file creation to not abuse the alr… Mar 16, 2011
Makefile Need to explicitly create pkgconfigdir now that install -D is not all… May 27, 2018
README Add README and web docs with gh-pages Nov 13, 2013
bktrace.cc Replace C-style casts with C++-style casts May 22, 2018
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 obsolete --without-mmx configure flag Mar 12, 2018
configure Bump version number Jul 31, 2018
fstream.cc Remove C-style comments Jul 28, 2016
fstream.h Coding style changes Nov 25, 2014
memblock.cc Replace C-style casts with C++-style casts May 22, 2018
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 Remove C configurator Nov 19, 2017
sistream.cc Fix hang in istringstream read_number at end of stream Mar 9, 2017
sistream.h Remove C configurator Nov 19, 2017
sostream.cc Replace C-style casts with C++-style casts May 22, 2018
sostream.h Replace C-style casts with C++-style casts May 22, 2018
strmsize.h ifdef out _long4grain alignof spec on 32bit platforms. Fixes #86. Jul 31, 2018
traits.h Make swap implementation shared with c++98 Mar 5, 2018
typeinfo.h Replace C-style casts with C++-style casts May 22, 2018
typelist.h Replace header guards with pragma once Dec 4, 2012
typet.h Remove tm::Conversion<T,U>::exists2Way Jan 9, 2016
ualgo.h Add clamp algorithm Nov 20, 2016
ualgobase.cc Replace C-style casts with C++-style casts May 22, 2018
ualgobase.h Replace C-style casts with C++-style casts May 22, 2018
uarray.h Restrict initializer_list use to c++11 mode Sep 28, 2015
uatomic.h Replace C-style casts with C++-style casts May 22, 2018
ubitset.cc Add noexcept wherever possible Feb 15, 2013
ubitset.h Remove operator<< and operator>> templates for ustl types. Mar 7, 2017
uchrono.h ifdef out _long4grain alignof spec on 32bit platforms. Fixes #86. Jul 31, 2018
uctralgo.h Coding style changes Nov 25, 2014
uctrstrm.h Remove operator<< and operator>> templates for ustl types. Mar 7, 2017
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 Replace C-style casts with C++-style casts May 22, 2018
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 front_insert_iterator and move_iterator Nov 20, 2016
ulaalgo.h Remove C configurator Nov 19, 2017
ulimits.h Implement c++11 float fields in numeric_limits Nov 20, 2016
ulist.h Implement chrono Nov 24, 2016
umap.h Restrict initializer_list use to c++11 mode Sep 28, 2015
umatrix.h Remove C configurator Nov 19, 2017
umemory.h Add operator!=(pointer) overload to smart pointers Oct 22, 2018
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 Fix new warnings and errors from gcc 8.1 May 7, 2018
unew.h Remove C configurator Nov 19, 2017
unumeric.h Coding style changes Nov 25, 2014
upair.h Make swap implementation shared with c++98 Mar 5, 2018
upredalgo.h Fix incorrect pred check in remove_copy_if. Fixes #66. Sep 28, 2016
uqueue.h Implement c++11 members of priority_queue Apr 3, 2016
uratio.h Implement serialization and text printing of chrono types Nov 24, 2016
uset.h Restrict initializer_list use to c++11 mode Sep 28, 2015
uspecial.h ifdef out _long4grain alignof spec on 32bit platforms. Fixes #86. Jul 31, 2018
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
ustl.pc.in Do not add -static-libgcc by default. Dec 1, 2017
ustring.cc Replace C-style casts with C++-style casts May 22, 2018
ustring.h Add to_string(unsigned) Oct 22, 2018
utf8.h Fix utf8out_iterator to not return a copy Jun 6, 2018
uttraits.h Add workaround for gcc 8.1 bug 85695 May 8, 2018
utuple.h Remove C configurator Nov 19, 2017
utypes.h Remove C configurator Nov 19, 2017
uutility.h Replace C-style casts with C++-style casts May 22, 2018
uvector.h vector dtor should not call dtors when linked May 22, 2018

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