Coder Social home page Coder Social logo

clu's Introduction

Chlorie's utilities library

Windows Ubuntu

Chlorie's C++ library of various little things.

Warning

This is just a personal hobby side-project. A large portion of this library is untested and undocumented. Please use at your own risk.

Documentation (largely unfinished): https://clutils.readthedocs.io/en/latest/. Also, existing tests might give you ideas about how the corresponding parts are used.

Provided Features

  • Small abstractions that might be useful in various fields, e.g. a URI class, a UUID class, some common hash functions (constexpr-enabled), easy random number generation etc.
  • Metaprogramming utilities, e.g. type_list, common meta list manipulation algorithms like concatenate, filter, foldl and such.
  • More type traits and concepts, many of which are exposition-only concepts included in the standard but not exposed as public API, e.g. callable, boolean_testable, template_of, function_traits and so on.
  • Library utilities, like iterator interface mixin, pipe-able function object factory, manual object lifetime control, and the like.
  • STL-style containers and algorithms that complements the standard library, e.g. static_vector, forest, indices, find and replace for strings.
  • Rough implementations of proposals for future versions of C++, for instance tag_invoke, generator, expected, and the senders/receivers framework for asynchronous programming.

Supported Configurations

Please use the latest compiler appropriate for your system. If you want to try this library out with older compilers, you are on your own.

  • This library uses C++20 language and library features extensively, it is suggested that you should use a relatively recent compiler.
    • The library is currently automatically tested and built on Windows with the latest MSVC (currently 17.7), and Ubuntu with the latest gcc (currently 13.2). These two compilers fully support all the C++20 features the library depends on.
    • clang (with libstdc++) support on Linux is currently under consideration. Since libc++ is really lagging behind on C++20 and even C++17 features, supporting it would be such a hassle, so I won't bother for now.
  • Since I don't have a Mac, testing such configurations is difficult for me. It's currently not on my list.

clu's People

Contributors

chlorie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

clu's Issues

`tag_invoke`

Being the right solution to customization points or not, we need to implement this.

Semver

Implement semantic versions

UUID class

Just some simple operations might be enough

Proper big integer types

wider_integer was too chaotic... The new big integer components should support both unsigned and signed big ints. Also some common operations should also be supported.

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.