Gibt es eine LINQ-Bibliothek für C ++?
Gibt es Plattform-Agnostiker (nicht CLI) Bewegungen, um mit LINQ gehen für C++ in irgendeiner Weise?
Ich meine, einen großen Teil des server-frameworks auf der ganzen Welt laufen auf UNIX-Geschmacksrichtungen, und haben Zugang zu LINQ für C++ auf UNIX würde wahrscheinlich machen eine Menge Leute glücklich!
InformationsquelleAutor der Frage Robert Gould | 2008-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Linq++ von Hong Jiang sieht aus wie ein guter Anfang. Die syntax ist viel näher an Linq als CLinq. Linq von pfultz2 sieht interessant aus, wie gut, aber es muss ein C++11 compiler.
InformationsquelleAutor der Antwort js.
Microsoft hat angekündigtdie Sie gebaut haben, LINQ für C und C++. Noch nicht verfügbar, obwohl.
Update 11/06/2012:
Microsoft Open Technologies, Inc. hat jetzt freigegeben und open-Source (Apache License 2.0) eine Reihe von Bibliotheken, einschließlich einer LINQ-Implementierung (Ix++), und es die neuen Reactive Extensions (Rx++) - Bibliothek.
InformationsquelleAutor der Antwort David Cuccia
Dies ist meine Lösung des template-C++, LINQ library.
Source code ist hier: Boolinq
Es gibt eine Menge von tests auf jedes Funktion.
Ich arbeite auf es jetzt.
Irgendwelche Kommentare?
Kann sein, Ratschläge?
UPDATE: Projekt verschoben https://github.com/k06a/boolinq und haben nun die version 2.0 mit nur 700 Zeilen Quellcode 🙂
InformationsquelleAutor der Antwort k06a
http://cpplinq.codeplex.com/ ist eine sehr gute Umsetzung.
Von den Autor:
Die motivation für CppLinq ist, dass beide boolinq und Native-RX scheint sich um den operator"." zu Komponieren Funktionen der Liste. Das problem ist, dass der ". " - operator, dass es nicht überladen in C++, die es schwierig macht, zu verlängern und diese Bibliotheken mit Funktionen von meinem eigenen design. Das ist für mich wichtig. CppLinq rund um das operator>> was ist overloadable so CppLinq gemacht werden können, erweiterbar.
InformationsquelleAutor der Antwort yufanyufan
Können Sie einen Blick auf PSade.Backofeneine stark boostified Bibliothek arbeitet auf STL-Reichweiten und bietet eine Menge LINQ-ähnlichen Funktionen.
InformationsquelleAutor der Antwort zwvista
Ich geschrieben habe, eine kleine Bibliothek cppLinqdass reimplements IEnumerable<> und die LINQ-Operatoren. Es ist nur ein experiment; denn jetzt, es funktioniert nur auf Windows (Coroutinen implementiert, mit Win32-Fasern), und baut nur mit der Dev Preview von VS11 (er macht eine starke Nutzung von lambda-Ausdrücken :-)).
Ermöglicht es, code zu schreiben, wie diese:
InformationsquelleAutor der Antwort Paolo Severini
Hier ist ein weiterer alternativedass ist einfach nur ein wrapper um boost und stl-algorithmen, so erhalten Sie die meisten die performance Vorteile dieser Implementierungen.
Funktioniert es so:
Beachten Sie, dass einige Methoden geben ein proxy für leere Bereiche, z.B.
Feedback ist willkommen.
InformationsquelleAutor der Antwort ronag
Eigentlich, wenn Sie nur wollen, verwenden von Linq für die list-comprehension, die Sie verwenden können, diese Linq Bibliothek. Es erfordert C++11(es funktioniert in MSVC 2010) und Boost. Mit der Bibliothek können Sie linq-Abfragen schreiben, wie diese:
Die Ausgabe:
InformationsquelleAutor der Antwort Paul Fultz II
C++ 0x, oder was auch immer es endet als genannt, hat ein neues Schlüsselwort namens
auto
ermöglicht für Typ-Inferenz. Und ja, es wird die lambda kommt für C++. Auch eine schnelle Google - Suche ergab diese, CLinq.InformationsquelleAutor der Antwort Chris
Hier ist meine Umsetzung von c++-linq mit c++11(in Chinesisch):
http://www.cnblogs.com/cbscan/archive/2012/10/20/2732773.html
It-support-Funktionen wie "verzögerte Abfrage","stack-basierten"(use-operator new, so wenig wie möglich),"kopieren " semantischen"(so können Sie Durchlaufen eine Abfrage multitime nach backup), und so weiter.
Darüber hinaus unterstützen Dutzende von Funktion inklusive "aus, wählen Sie, wo, cast ,Sortiment, alle, irgendwelche ,Darsteller, Durchschnitt ,enthalten, count ,first, last, Kopf, Schwanz -, groupBy ,takeUntil, skipUntil ,max -, min -, senken -, unique -, Sortier -, random -, intersect, _union".
Ich glaube, mein code ist einfach genug zu verstehen und zu erweitern, indem jeder selbst.
InformationsquelleAutor der Antwort Scan
Ich glaube nicht, dass C++ ist der compiler Zucker zu behandeln Dinge wie lambda-Ausdrücke, also Nein, das wird nicht passieren.
InformationsquelleAutor der Antwort FlySwat