Giter VIP home page Giter VIP logo

cpprelude's Introduction

CPPrelude

CPPrelude is a body of code that I tend to write over and over again in every project I make. So, I decided to write it as a library and include it in my projects.

It contains algorithms, containers, memory management stuff ... etc.

Developed by:

Moustapha Saad Abdel-hameed

Nora Abdel-hameed

CPPrelude version 5.0.0 is released under the GNU Lesser General Public License version 3.

Check out the examples.

Philosophy and Coding standard

For Philosophy and coding standard please refer to this link.

How CPPrelude does polymorphism?

Building

  1. CPPrelude uses premake5 as its meta build system so you have to download premake5
  2. Use premake5 to generate project/solution files in order to compile the library.
    1. Ex: premake5 gmake this will generate the build folder with linux make files inside
    2. Ex: premake5 vs2015 this will generate the build folder with visual studio 2015 solution files inside
  3. CPPrelude supports 32-bit and 64-bit targets and has a debugShared and releaseShared modes
  4. building the library is as easy as invoking your build system
  5. binaries should be generated inside a bin folder right beside the build folder
  6. Also a unittest executable will be generated you can invoke it to test your CPPrelude build

Content

  • algorithm: a collection algorithms that could be used with the provided containers.
  • allocator: allocators that could be used with the provided containers.
  • array: a fixed size array.
  • bucket_array: a bucket array container.
  • bufio: a buffered input/output.
  • defines: languages primitives.
  • dlinked_list: a double linked list.
  • dynamic_array: a dynamic grow-able array.
  • error: a collection of error reporting functions.
  • file: a file stream.
  • file_defs: OS specific file handles
  • fmt: a collection standard print/scan functions
  • hash_array: a hash array implementation.
  • io: a basic stream input/output implementation.
  • memory: a basic memory slice primitive.
  • memory_context: a memory context/allocator trait.
  • memory_watcher: a memory leak scope watcher.
  • platform: an abstraction on the actual OS.
  • priority_queue: a heap implementation.
  • queue_array: a queue implementation based on a dynamic_array data structure.
  • queue_list: a queue implementation based on a dlinked_list data structure.
  • result: a result the combines a value and an error into the same structure in a transparent manner.
  • slinked_list: a single linked list implementation.
  • stack_array: a stack implementation based on a dynamic_array data structure.
  • stack_list: a stack implementation based on a slinked_list data structure.
  • stream: a memory stream implementation.
  • string: an UTF-8 string implementation.
  • tree_map: a red black tree implementation.

How to contribute

Feel free to fork and create pull requests at any time. It would be nice if you involved any one of us with you from the start to guide you, or maybe discuss your idea itself (Developers e-mails are up above).

Thanks

cpprelude's People

Contributors

moustaphasaad avatar moustaphasaadsymbyo avatar noraro avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.