Hacker News new | past | comments | ask | show | jobs | submit login

I would recommend instead Facebook's folly::gen library, which provides these functional combinators in a high-performance fashion, by expressing them as streaming combinators. You get all the map/filter/take/drop/reduce primitives, but in a much cleaner way.

See https://github.com/facebook/folly/blob/master/folly/gen/test... for an example.




Or Atria's transducers library (a-la Clojure), which can be applied to collections but also to pushy things (e.g. boost.signals, rx.observables, etc.):

Code: https://github.com/Ableton/atria/tree/master/src/atria/xform...

CppCon 2015 session: http://sinusoid.es/talks/transducers-cppcon15/ https://www.youtube.com/watch?v=vohGJjGxtJQ


I see all these nice C++ libraries like Facebook folly and then I see that they bring in boost and megabytes of include files for trivial stuff bringing in stuff I absolutely don't need (or ever will, in fact most of it is for dealing with legacy compilers and OSes I don't care about). Maybe it's just me but I don't like half an hour compile times. Am I missing something or has everyone else using it just accepted the compile times ?


"Bringing in Boost" doesn't cost you much at all in terms of compile time. Using some of the advanced template meta-programming stuff in it may, but basic things like the legacy compiler and OS support you mention are largely using the C preprocessor and take very little time. In other words, give it a try--I'm sure you won't have half an hour compile times just by using Folly.

If you want to compile C++ (or C) really fast, look at icecc: https://github.com/icecc/icecream





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: