auto timeFuncInvocation = [](auto&& func,auto&&... params) { // start timer; std::forward<decltype(func)>(func)( std::forward<decltype(params)>(params)... ); // stop timer and record elapsed time;};
我完全理解params的完美转发,但是当func的完美转发与之相关时,我还不清楚.换句话说,上述优点有以下几点:
auto timeFuncInvocation = [](auto&& func,auto&&... params) { // start timer; func( std::forward<decltype(params)>(params)... ); // stop timer and record elapsed time;};解决方法 出于与参数相同的目的:所以当Func :: operator()是ref-qualifIEd时:
struct Functor{ voID operator ()() const & { std::cout << "lvalue functor\n"; } voID operator ()() const && { std::cout << "rvalue functor\n"; }};
Demo
总结以上是内存溢出为你收集整理的c – 在调用表达式中完美转发Callable参数的目的?全部内容,希望文章能够帮你解决c – 在调用表达式中完美转发Callable参数的目的?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)