3 ms·
C++ programmers using a lot templates have a lot in common with Haskell programmers. Often I will write static methods like.. template<typename Scalar, ty
by cjhanks 10y ago
C++ programmers using a lot templates have a lot in common with Haskell programmers. Often I will write static methods like..
template<typename Scalar, typename Functor>
auto
DoSomething(Scalar value, std::size_t k) -> decltype(Functor(Scalar(0))
{
...
Functor(value / Scalar(k));
...
}
Even though it will probably only be used once. Simply because I don't know what types I am going to need yet... but I know it might need a few operators `+`, `-`, `*`, `/`. Once I figure that out, the code is ready to go and is as fast as anything hand written.
If somebody could ever write a great 'Haskell for C++ MetaProgrammers' book describing how you are supposed to understand binary layout, IO, and wtf those hundreds of operators mean... you would probably have a bunch of programmers saying "Oh, I guess I know Haskell".
It's also no surprise that a bunch of the STL algorithms structures were easily made parallel in C++17. A lot of developers using the STL correctly could basically change a few lines of code and switch their program from sequential to parallel.
- hellofunk 10y agoAre you referring to adding an execution policy to many of the STL fn calls?