Coder Social home page Coder Social logo

weizhengwei / aurora Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bromeon/aurora

0.0 2.0 0.0 483 KB

Header-only library with unconventional C++ features, like deep-copy smart pointers, dynamic dispatch, type-erased ranges

Home Page: www.bromeon.ch/libraries/aurora

License: Other

aurora's Introduction

Aurora C++ Library

Aurora is an open-source C++ library providing various rather uncommon C++ utilities. Features include:

  • Named tuples
  • Dynamic dispatch
  • Ranges as iterator abstraction
  • Smart pointers with deep-copy semantics
  • Basic template and preprocessor metaprogramming
  • ...

For a full list of features as well as tutorials and API documentation, visit the project homepage.

Aurora is a header-only library that has no external dependencies, therefore it can be directly used in any project, without the need for a build or installation step. It requires partial C++11 support.

The Aurora library is used in my other project Thor, an extension of the multimedia library SFML.

License

Aurora is licensed under zlib/libpng, which is very permissive. You can use the code in free and commercial products, open- or closed-source. I would appreciate if you left a short note that you used one my libraries, but it's not required.

Author and contact

Aurora has been developed by Jan Haller since 2012.

Contributions

Aurora is not meant to be a community project in the classical sense, where dozens of people contribute with code patches. When I implement something new in my libraries, I spend most of the time thinking about the design -- writing code is just a small part, and usually the easy one. I consider it crucial that functionality is provided in the most simple, yet flexible way, and finding appropriate APIs takes time.

That is the main reason why pull requests, especially the way GitHub provides them, are of limited use to me. Another problem is that they are often not directly applicable, and even for simple things, it takes a lot of time to review them, test them locally and suggest corrections, possibly during multiple iterations. In many cases, the overhead is several times higher than if I'd write the code directly, which somehow defeats the point of helping me out. Since I'm also involved in the development of SFML, I have only few time left for my other open-source projects, and I would really like to spend it on the development of new features. Furthermore, people who submit a pull request often have a specific use case in mind and don't consider how it fits into the general library structure. I agree that this is difficult to know when you have not followed development for a longer time, which is another reason why I'd like to integrate modifications myself. Thus, please do not submit pull requests and expect me to merge them 1:1. Even for simple issues like space inconsistences, typos or other mistakes in the code, it's usually much faster to simply inform me.

I am always open for discussions about Aurora, and I highly appreciate suggestions concerning its API or implementation. If there is something that you would like to see implemented, just ask me -- I have already been able to improve many parts based on user ideas. You can contact me by e-mail or alternatively in the corresponding Aurora thread on the SFML forum.

aurora's People

Contributors

bromeon avatar

Watchers

 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.