CppLinq icon indicating copy to clipboard operation
CppLinq copied to clipboard

LINQ implementation for Modern C++

C++ LINQ

LINQ implementation for Modern C++

The main code of this repository is based on Anton Bukov's boolinq.

License

Features

  • Simplest C++ header-only LINQ template library.
  • Support various containers
    • C++: Native arrays, pairs of pointers
    • STL: list, stack, queue, vector, deque, set, map, any compatible ...
    • Qt : QList, QVector, QSet, QMap

What's the difference between CppLinq and boolinq?

  • Apply Modern C++ (C++11/14/17) features.
  • (To-do) range-v3 (to be C++ standard) support.
  • (To-do) various operation support such as Multiply, LeftJoin, RightJoin, ...
  • and so on...

Supported Operators

  • Cast
  • Take
  • Skip
  • Concat
  • Where
  • Select
  • Reverse
  • OrderBy
  • GroupBy
  • Distinct
  • Foreach
  • All
  • Any
  • Sum
  • Average
  • Min
  • Max
  • Count
  • Contains
  • ElementAt
  • ToSet
  • ToList
  • ToDeque
  • ToVector
  • ToContainer

Will Support Operators

  • Multiply
  • Divide
  • LeftJoin
  • RightJoin
  • CrossJoin
  • FullJoin

Documentation

TBA

License

This software is provided under the MIT License, more information can be found in the license file.

How To Contribute

Contributions are always welcome, either reporting issues/bugs or forking the repository and then issuing pull requests when you have completed some additional coding that you feel will be beneficial to the main project. If you are interested in contributing in a more dedicated capacity, then please contact me.

Contact

You can contact me via Facebook at http://www.facebook.com/utilForever. I am always happy to answer questions or help with any issues you might have, and please be sure to share any additional work or your creations with me, I love seeing what other people are making.