Giter VIP home page Giter VIP logo

amc's People

Contributors

benkaufmann avatar sjanel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

amc's Issues

constexpr support for FixedCapacityVector

Before waiting for completion of C++20 support of constexpr memory allocation, we can improve FixedCapacityVector in order to make it 100 % compatible with constexpr as it does not allocate memory.

Allocator behavior in vectors swap method

Currently vectors swap methods only swap the contents of the vectors, without touching each other's Allocator.
Standard defines allocator trait propagate_on_container_swap to control this behavior.

Allow amc::vector to accept incomplete types

Since C++17, std::vector may be declared with incomplete types. However, it's not the case for amc::vector as it shares some parts with amc::SmallVector and amc::FixedCapacityVector which require complete types.

Allow definition of amc::vector with incomplete types.

More information here

Dubious lookup benchmark for unordered sets

The benchmark report shows ~20ns average lookup time for std::unordered_set, which is less than the time taken by a cache miss, therefore unrealistic for average sized sets. The benchmark uses sets of 100k elements, a std::unordered_set of 100k int32 barely fits in L3 cache and the benchmark makes it look too good in comparison with amc::FlatSet.
I suggest to use bigger set sizes, or repeat the benchmark for different set sizes.

Improve readme

Readme is explaining the core contents of the library but can be improved:

  • Add example of usages of each container, why it exists and in which cases it can be useful
  • Explain how to consume the library in a C++ project (for instance with FetchContent) with code integration examples

Improve and clean vectors tests

vectors tests is a bit complicated with large functions and should be broken down in smaller tests to ease readability.
We would then be able to see if all the features of the class are properly tested.

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.