Jun. 28th, 2022

Попытка написать функцию-обертку с соблюдением типизации закончилась, можно сказать, успешно.
template<typename Func, typename...Args>
typename decltype(std::function(std::declval<Func>()))::result_type
wrap(Func &&fn, Args&&...args) {
    // prolog
    typename decltype(std::function(fn))::result_type res
       = fn(std::forward<Args>(args)...);
    // epilog
    return res;
}
...
cout << wrap([](double m) { return 3.14*m; }, 2.0) << endl;

Печатает, как и планировалось, 6.28.

В процессе помянул бога, душу, чью-то мать, свою загубленную молодость, тот день когда я сел за баранку этого пылесоса и, тихим незлым словом, весь комитет. За что нам всё вот это?

Profile

ex0_planet

April 2023

S M T W T F S
      1
234567 8
910111213 1415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 24th, 2026 05:11 am
Powered by Dreamwidth Studios