brenoguim / flexclass Goto Github PK
View Code? Open in Web Editor NEWA library for classes with flexible layout
License: MIT License
A library for classes with flexible layout
License: MIT License
Today the library only creates the Object + arrays in that sequence.
It would be nice to have a "BackwardAdjacentArray" which would cause the layout to be:
| arrays | user object | more arrays |
It would be great to support MSVC and clang officially. The task at hand is to adjust the CI to compile and test with them.
One strong goal of this library is to include as few headers as possible. It is on purpose that we avoid <memory>
and <tuple>
headers.
In GCC, the library expands to 5000 lines today
The task at hand is to add test (somehow) to verify that the expanded code is less than 6000 lines.
The library contains a benchmark directory with a single benchmark. It would be nice to have a check that the performance using the library is actually better than the performance without it.
Not sure how to implement that. People with experience in Catch2 and cmake wanted :)
I have seen a lots of confused feedback from people who did not understand what the library does and how it helps.
It would be nice to have a more clear diagram showing layout differences, and have a smaller description that makes the advantages crystal clear. I really don't know how to explain it better :(
We have a single benchmark using a graph. New cool applications to showcase the power of the library wanted.
I went through multiple iterations of this library, so both the Readme and the UserGuide may be out of date.
The task at hand is to review and reproduce examples and make sure they all compile and make sense.
The main test file (tests/unit/basic.test.cpp) contains a lot of duplicated code, it's not very thorough and doesn't test many of the corner cases.
It would be nice to cleanup, reuse, add more tests... Anything improving tests will count!
The library has little to no comments. It would be great to go over all functions and tricky code and document it.
At most time, the size of a container is dynamic and may be modified. So can fc:Array
be resized?
The fundamental building blocks of this library can be seen as:
template<class... Ts>
auto allocate_adjacent_arrays(std::integral auto... sizes) -> std::tuple<std::pair<Ts*, Ts*>...>;
This function would allocate a single block of memory that fits sizeof...(Ts)
arrays which the sizes are given in sizes
. The return value returns pointers to (non-constructed) objects inside this.
The second building block would be something like std::uninitialized_value_construct
which support multiple begin/end iterators.
Then it should be very easy to build this library.
So far we have 0 real world users :)
It would be nice to use this library in some project and we would link this project here as a user.
When we get the first user, this library will finally make it into v1.0 :)
A lot of the code is templated but it would be nice to have code coverage infrastructure.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.