This project is read-only.

cpplinq for ARM (Linux) GCC 4.7.2

Jul 18, 2013 at 5:25 PM

First, I do like Linq, have been a frequent developer using C# and LINQ. Plus, I do enjoy the benefits of extension-style methodology.

Did a little searching and came across cpplinq. I do like the use of the C++ >> operator facilitating extension-style operation. Any operator overload, really, that just happens to be pretty common for this sort of thing.

Question, however. We are targeting Linux (ARM) using a GCC 4.7.2 toolchain. It would seem that the header is more geared towards Microsoft-compilers? There are a couple of gaps in our toolchain that need better comprehension, such as I don't think std::move is fully comprehended as part of our GCC toolchain and/or libs/headers.

So... with some adaptation, such as where things like std::move are unavailable, we could possibly use boost::move, that sort of thing? Perhaps we fork off a repo and adapt it for our internal use?

Thank you for the great extension!

Jul 23, 2013 at 9:41 PM

the intention is that cpp linq should work on all c++11 compilers. we have run tqhe test cases on gcc compilers and unless something broke recently it should work. std::move isnt the most critical part. decltype is heavily relied on as well and if thats not supported in your tool stack it will be difficult to retrofit. best is probably to try to compile the test app on your compiler and run the unit tests
Jul 24, 2013 at 8:50 AM
Well no offense but best of intentions... I am unfamiliar with decltype. Further we don't use pragma once. I'm not sure that's compiler specific. Why not a portable ifndef block? That aside, what alternatives would you suggest for decltype? Thank you...
Jul 24, 2013 at 9:20 PM
If your version of GCC doesn't support c++11 I would either try upgrading to a later version of GCC (the latest versions of GCC do support all aspects of C++11) or test if boost::range works for you.

Regarding #pragma once, there's no important reason for using that over #ifndef. I can fix that.

PS. When checking the c++11 support for 4.7 it seems to me the pieces are in place. When testing we used the compiler flag: -std=c++0x

Jul 26, 2013 at 9:06 PM
FYI I now replaced #pragma once with header guards. Check to see if it works for you.