https://github.com/fgenesis/fgstd
Go away, nothing to see here
https://github.com/fgenesis/fgstd
Last synced: 3 months ago
JSON representation
Go away, nothing to see here
- Host: GitHub
- URL: https://github.com/fgenesis/fgstd
- Owner: fgenesis
- Created: 2015-06-29T18:56:46.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-04-12T23:26:50.000Z (about 8 years ago)
- Last Synced: 2025-01-20T22:35:49.287Z (5 months ago)
- Language: C++
- Size: 57.6 KB
- Stars: 2
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# What?
fgstd is sort of a replacement for parts the STL.
It it neither designed nor inteded to be compatible with the STL, and there are trade-offs towards a simplified API and higher performance.
It is currently a work-in-progress and not ready for use.
# Provided functionality
- Unified primitive types (even without stdint.h)
- Type traits
- Containers
- vector
- hasmap
- multivector (SOA-friendly, WIP)### NYI
- Algorithms
- sort
- heap
- ...
- Utility
- bytebuf
- bitbuf
- streams?
- More containers
- treemap
- splaymap?
- flatmap
- linkedlist? (really?!)
- flatlist
- Automatic expression vectorizer via expression templates (WIP)# Design goals
- 100% customizable memory allocation
* Allocators are not part of the type signature
* Instead: virtual methods (you're not going to spam memory allocation, are you?)
* Alignment-aware
- No exceptions!
- C++03 compatible, but can use C++11 if svailable
- No memory allocation at all for empty containers
- Data structures are small (as in sizeof()) and simple (keeping the code size down)
- Separated declaration and implementation headers for faster compile times
- Basic operations pretty much STL-compatible (so you'll feel right at home)
- Depends only on some parts of the C library:
- memcpy(), memmove(), memcmp()# Excluded
Aka functionality that almost nobody uses or needs
- Locales
- ? Printing functionality (cout, cin, etc)
- wchat_t, wstring, etc