Nomadluap / pstdlib

An implementation of parts of the C/C++ standard library for use in homebrew OS projects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

=== PSTDLIB ===

== What is it? ==

Pstdlib is an implementation of the useful parts of the C and C++ standard library, written in C++14+
Pstdlib is written for use in my homebrew OS project for 32-bit X86, paulOS

While this library will try to follow the standard libraries where possible, there will be some places where
it deviates significantly. Examples include:

 - No locale support

 - C varargs functions will be replaced with C++ variable templates.

 - C++ iostreams will (probably) not be implemented.

 - All functions are currently in the 'pstd' namespace, to ease testing.

 - static_* versions of the standard containers will be included that do not allocate, similar to
   boost::container::static_vector and friends.

 - Non-re-entrant versions of some C functions like strtok will be replaced with re-entrant versions.

== What's Implemented ==

Currently the following is implemented

 - C standard library

    - string.h (cstring.hpp): all but strtok are implemented and tested.

 - C++ Standard Library

    - algorithm (algorithm.hpp): ~99% implemented, untested. 

    - array (array.hpp): implemented, tested.

    - initializer_list (initializer_list.hpp): implemented, untested. 

    - iterator (iterator.hpp): most iterator support is implemented, but untested.

    - type_traits (type_traits.hpp): most traits are implemented and tested. 

    - utility (utility.hpp): implemented, including move, forward, and pair. Tested. 


== Build Requirements ==

This library requires no external libraries, and no external headers except for <stdint.h> and <stddef.h>.
Therefore it should build for most platforms without issue.

== Compiler Support ==

This library has only ever been tested on GCC, and should work okay on most architectures.


== How you can help ==

 - Test cases! If you can add more test cases, it would be much appreciated. 
 - Optimization! Currently my goal is quantity rather than quality. Optimization in the low level routines would be 
   great!

About

An implementation of parts of the C/C++ standard library for use in homebrew OS projects.


Languages

Language:C++ 99.9%Language:CMake 0.1%