Coder Social home page Coder Social logo

ast-al / rangeless Goto Github PK

View Code? Open in Web Editor NEW
195.0 16.0 6.0 1.31 MB

c++ LINQ -like library of higher-order functions for data manipulation

License: Other

CMake 0.59% C++ 99.39% HTML 0.02%
cpp cpp11 functional functional-programming range linq itertools parallel streaming-data streaming-algorithms

rangeless's Issues

exists_where doesn't work after fn::transform

The exists_where operation takes a const Iterable& which makes it fail when used after fn::transform or other operators... I think that ones that generate seq? The issue seems to be that seq.begin is a non-const operation because seq is consumable.

I think that exists_where should work like for_each or foldl, both of which take Iterable&&. It's really just a foldl with a fixed algorithm that can return early.

First invocation works, second one doesn't:

std::vector<int> a = {1, 2, 3};
a % fn::exists_where([](auto item_a) { return item_a == 1; });
a % fn::transform([](auto item_a) { return item_a; }) % fn::exists_where([](auto item_a) { return item_a == 1; });

std::inserter not found

I get a compiler error when trying to use this library with a C++17 msvc2019 project:

"inserter" is not a member of "std"

Adding #include <iterator> fixes this.

I would send a pull request, but I am not experienced enough in C++ to have the confidence.

Recent compilers are warning about pessimizations

I have been playing around with rangeless as a faster compiling alternative to std::ranges and ranges-v3. I have been getting some compiler warnings that there are redundant or pessimizing moves in fn::transform and in fn::take_while. Would you consider removing the unnecessary std::move wrappers on lines 1592 and 1846? See this example. Thanks.

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.