> Sent: Wednesday, October 31, 2018 at 4:30 PM
> From: "Giuseppe D'Angelo via Interest" <interest@qt-project.org>
> To: interest@qt-project.org
> Subject: Re: [Interest] Qt API annoyances: where to log/discuss?
>
> Il 31/10/18 18:35, Jason H ha scritto:
> > I attempted this recently, but failed to figure out how to do the following:
> > QVector<int> triple = apply(QVector<int> {1,2,3},[](item) { return 
> > item*3;});
> > or
> > QVector<int> originals {1,2,3};
> > QVector<int> triples = originals.apply([](item) { return item*3;});
> 
> You do this:
> 
> > std::vector<int> originals{1, 2, 3};
> > std::vector<int> triples = originals | ranges::view::transform([](int i) { 
> > return i * 3; });
> 
> (modulo typos). Possibly even without the <int>, as std containers have 
> CTAD.

Thanks Giuseppe! That's getting closer :-) however the expression boggles my 
mind. "originals | ranges::view::transform" there's a lot of compiler voodoo 
there. I'm trying to keep up on all the C++0xYZ developments, and still trying 
to wrap my head around SFINAE. I had to look up CTAD, and that looks like a 
very good enhancement. I think Qt should hide a lot of that compiler iteration 
from me ;-) It is an unfortunate phenomenon that I am spending more time 
decrypting compiler Voodoo. I am thinking that C++ is less a language for 
writing things in, and rather a language for programming a compiler with the 
secondary goal of creating an application. <soapbox warning> Too much is being 
spent on telling the compiler how to build it, rather than just building it. I 
think this is one thing that Qt can (and should) restore the balance on. "Code 
less, create more." Spend less time figuring out how to tell the compiler to 
build it, and let Qt apply() (pun intended) it's transforms to m
 ake my effort about application programming not compiler programming.



 


_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to